Je suis relativement nouveau à WiX. C'est un outil génial, mais j'ai encore besoin de temps pour l'apprendre mieux. J'ai rencontré un problème avec l'enregistrement et le désenregistrement d'un composant COM . J'ai créé des programmes d'installation pour deux applications, appelons-les A et B. Les deux utilisent le même composant COM. J'ai utilisé l'outil de chauffage, comme recommandé. Lors de l'installation de A ou B, le composant est enregistré sans problème . Mais quand j'installe A et B, puis retirez A (avec Ajout/Suppression de programmes) la classe COM n'est plus enregistrée et B ne peut plus l'utiliser. Existe-t-il une solution propre pour éviter que cela ne se produise? Je souhaite désinscrire le COM lorsque BOTH A et B sont désinstallés.WIX: COM désinscription lors de la suppression de l'un des deux programmes
Toute aide serait appréciée,
Meilleures salutations, madbadger
EDIT: Merci pour vos réponses. J'ai mis le GUID à la même valeur dans les deux installateurs et maintenant les clefs de registre sont enlevées correctement, c'est quand le dernier programme est enlevé du système.
Hovewer, le problème persiste pour une raison. J'ai vérifié le registre sous HKEY_CLASSES_ROOT/CLSID/[GUID COM approprié]. Voici ce qui se passe:
- J'installe A et le chemin vers COM est défini sur [chemin vers A/component.dll]
- J'installe B et le chemin vers COM est défini sur [chemin de B/component.dll ]
- Je supprime B et le chemin d'accès à COM reste [chemin d'accès à B/component.dll]
- Maintenant, A ne peut pas accéder au composant COM par le fait qu'il est enregistré, car [path to B/component.dll] n'existe pas plus maintenant
Maintenant, je suppose qu'il est obligatoire de mettre le composant COM dans le même répertoire pour les deux applications. Windows Installer ne peut-il pas revenir à l'ancien chemin ou est-ce quelque chose qui me manque?
Dois-je mettre le composant COM à un emplacement pour les deux installateurs? Le dossier system32 est-il un bon endroit pour cela? – madbadger
Oui, vous devez le mettre au même endroit.(Le programme d'installation de Windows s'identifie à la fois avec le GUID et le chemin du fichier/registre). System32 n'est pas un bon endroit. Je suggère quelque part sous le dossier de fichiers communs (habituellement 'Program Files \ Common Files \ YourCompanyName'). Vous entrez ceci dans Wix comme ceci: 'Directory =" [CommonFilesFolder] \ YourCompanyName "' –
Merci beaucoup d'avoir bien expliqué cela! – madbadger