3 votes

L'installation "avancée" de Wix ne désinstalle pas la version précédente.

Je tiens à m'excuser par avance si j'oublie des détails importants.

Je tente d'effectuer une mise à niveau dans laquelle la version précédente du logiciel (et tous ses composants) doit être supprimée avant l'installation de la nouvelle version.

Je vais essayer de ne pas vous ennuyer avec les détails et dire que si vous faites une installation "typique", tout se passe comme prévu. Si vous choisissez de faire une installation avancée (spécifier l'installation pour tous les utilisateurs, l'emplacement de l'installation, etc.), il semble que l'étape de "désinstallation de la version précédente" soit complètement ignorée.

Jusqu'à présent, j'ai fait ce qui suit :

-J'ai modifié mes balises UpgradeVersion pour suivre les conseils d'une autre question de stackoverflow.

-Vérifiez que la propriété "OLDVERSIONBEINGUPGRADED" est correctement définie.

-Vérifiez que les codes/identifiants de mise à niveau sont les mêmes, que les numéros de version sont séquentiels (mise à niveau de 1.0.8 à 1.0.10) - après tout, l'installation "typique" fonctionne correctement !

-Suivi les conseils donnés ici : WiX-- toujours écraser la version précédente et a suivi ceci : http://wix.sourceforge.net/manual-wix3/major_upgrade.htm

J'ai essayé d'implémenter un hack en appelant manuellement msiexec pour désinstaller une version précédente par son identifiant produit (cela a échoué parce que nous étions déjà en train d'installer quelque chose - y a-t-il une meilleure façon de planifier cela ?)

Ma section Produit / Mise à niveau ressemble à ceci :

<Product Id="GUID1" UpgradeCode="GUID2" Version="1.0.10.0">
    <Package Compressed="yes" InstallerVersion="200"/>
    <MajorUpgrade Schedule="afterInstallInitialize" 
      DowngradeErrorMessage="Another version of [ProductName] is already installed."/>
    <Upgrade Id="GUID2">
        <UpgradeVersion Minimum="1.0.10" OnlyDetect="yes"
             Property="NEWERVERSIONDETECTED" />
        <UpgradeVersion Maximum="1.0.10" IncludeMaximum="no" 
             Property="PREVIOUSVERSIONINSTALLED" />
    </Upgrade>

Je suis un novice de Wix, il se peut donc que j'aie négligé des détails importants en décrivant mon problème. Si j'ai négligé d'inclure quelque chose d'important, veuillez me le faire savoir.

Merci d'avance pour toute contribution que vous pourrez apporter.

2voto

Wim Coenen Points 41940

Il semble que vous rencontriez la même limitation que moi, voir cette question . Vous ne pouvez pas modifier l'étendue de l'installation ("par utilisateur" ou "par machine") dans une mise à niveau.

Il n'y a pas de moyen simple de contourner ce problème à partir de Windows Installer. Vous pouvez seulement créer un exe bootstrapper séparé qui désinstalle la version précédente, puis lance l'installation de la nouvelle version.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X