Wix Major Upgrade, qu'est-ce que je fais mal?
Question
Les mises à niveau fonctionnent correctement si aucun composant n'a été modifié, mais chaque fois qu'un composant change, la mise à niveau échoue et oblige l'utilisateur à désinstaller et à réinstaller manuellement.
Quelques extraits:
<Product Id="*" Name="My Application" Language="1033" Version="!(bind.FileVersion.ClientEXE)" Manufacturer="My Company" UpgradeCode="MYGUID-b94a-44eb-8e92-9286f1d89bbd">
<Package Id="*" Description="My Installer" Comments="Copyright My Company 2008" InstallerVersion="200" Compressed="yes" />
<Upgrade Id="MYGUID-b94a-44eb-8e92-9286f1d89bbd">
<UpgradeVersion Language="1033" Property="UPGRADEFOUND" Minimum="0.0.0.0" Maximum="99.99.99.99" IncludeMinimum="yes" IncludeMaximum="yes" />
</Upgrade>
<InstallExecuteSequence>
<RemoveExistingProducts Before="InstallInitialize" />
</InstallExecuteSequence>
De plus, vous rencontrez parfois des problèmes avec la clé de registre suivante, qui ne supprime parfois pas lors de la désinstallation et je ne comprends pas pourquoi:
<Component Id="InstalledRegistry" Guid="SOMEGUID-0a17-4c6b-983d-8f3feb3a7724">
<RegistryKey Id="InstalledRegKey" Root="HKMU" Key="SOFTWARE\MyCompany\Client" Action="createAndRemoveOnUninstall">
<RegistryValue Name="Version" Type="string" Value="!(bind.FileVersion.ClientEXE)" KeyPath="yes"/>
</RegistryKey>
</Component>
C’est ce que le programme d’installation vérifie pour savoir s’il faut lancer msiexec avec " REINSTALL = ALL REINSTALLMODE = vamus " ou pas, donc si elle a été désinstallée mais que la clé de registre n’a pas été supprimée, l’installation essaierait d’effectuer une mise à niveau et échouerait en silence.
Indiquez-moi si d'autres informations sont nécessaires
Modifier: Il y a eu un autre problème par la suite, seuls certains fichiers ayant été mis à jour. Modification de RemoveExistingProducts en After = " InstallValidate " et cela a résolu cela. Cela ralentit un peu, car cela supprime complètement l'installation précédente au lieu de simplement mettre à niveau les fichiers modifiés (ce que cela ne semble pas détecter correctement pour moi), mais le travail est fait.
La solution
FWIW, vous n'avez besoin d'aucun argument de ligne de commande pour effectuer une mise à niveau majeure.
Le code me convient, alors le numéro de version n’est-il pas modifié? (N'oubliez pas que Windows Installer ne se soucie que des trois premières parties si vous utilisez un numéro de version en 4 parties)