J'ai besoin d'installer des plugins (ou des add-ons) dans une application que nous écrivons. J'utilise WiX pour l'installateur de l'application. Un plugin est, à mon avis, une partie facultative de l'application. Il doit s'intégrer dans la structure du système de fichiers de l'application, mais il peut aussi être ajouté plus tard, même par quelqu'un qui n'a pas le contrôle sur le programme d'installation de l'application d'origine. Donc, je trouve que tous les mécanismes de WiX sont inadéquats: ni la mise à jour petite/mineure/majeure, ni le mécanisme de correctifs ne semblent correspondre aux conditions préalables énoncées dans la phrase précédente. Donc, je trouve que la meilleure façon pour moi est de laisser l'installateur d'origine laisser une entrée de registre spécifiant d'une façon ou d'une autre où installer les plugins, et construire des programmes d'installation séparés pour les plugins. Ce qui laisse ouverte la question, comment procéder à la désinstallation, mais c'est un problème que je peux gérer plus tard. Est-ce que quelqu'un a une meilleure idée? Existe-t-il des mécanismes spécifiques pour WiX dont je ne suis pas au courant? Thnx pour vos conseils, N-ManComment installer un plugin ou un add-on avec WiX
Répondre
Je trouve la meilleure façon pour moi est de laisser l'installateur initial laisser un spécifiant registre d'entrée d'une manière où installer les plug-ins, et Construire des programmes d'installation séparés pour les plugins .
Oui, je crois que c'est l'approche standard. Votre principal d'installation d'application peut laisser une entrée de registre pour savoir où installer des plugins comme ceci:
<Registry Id='WritePluginsLoc'
Root='HKLM'
Key='Software\Acme\Foo 1.x'
Name='PluginsLocation'
Type='string'
Action='write'
Value='[PLUGINSFOLDER]' />
Le plug-in installateur peut alors récupérer l'entrée de Registre comme ceci:
<Property Id="PLUGINSFOLDER">
<RegistrySearch Id='PluginsLocationSearch'
Root='HKLM'
Key='Software\Acme\Foo 1.x'
Name='PluginsLocation'
Type='raw' />
</Property>
Pour automatiquement désinstaller plug- ins avec le produit principal, je crains que vous aurez à écrire un exe personnalisé de désinstallation. Cet exe devrait savoir comment trouver les codes de produit MSI plug-in et invoquer msiexec /x
pour chacun d'eux.
Une clé de registre est un moyen populaire de résoudre ce problème. Une manière plus centralisée de Windows Installer de créer un répertoire de plug-in est d'utiliser un composant pour créer le répertoire de plug-in et d'autres utilisent une recherche de composants pour Component/@ Guid.
La désinstallation des plug-ins en même temps que votre application sera difficile (probablement impossible) sans un programme d'amorçage/chaînage externe gérant votre désinstallation. Il est beaucoup plus facile de découpler complètement la désinstallation des plug-ins de l'application afin de pouvoir les supprimer indépendamment.