Je me bats pour activer la fonctionnalité de mise à niveau majeure dans WiX. Je veux que chaque nouvelle version du programme d'installation soit une mise à jour majeure (désinstallation complète, puis nouvelle installation) car nous ne voulons pas de versions différentes de mise à niveau et d'installation propre.Comment faire fonctionner la mise à jour WiX majeure?
J'ai commencé à essayer de le faire en utilisant le tag, mais j'ai continué à recevoir "Une autre version est installée". Message d'erreur lorsque j'exécute le programme d'installation J'ai donc implémenté la nouvelle balise qui a été ajoutée dans la version 3.5 pour faciliter les mises à jour. Je recevais toujours le message d'erreur.
J'ai ensuite lu quelque part que vous devez modifier le GUID Id pour chaque nouvelle version. J'ai donc défini Id = "*" pour que WiX les génère. Maintenant, lorsque j'installe la nouvelle version, elle ne désinstalle pas l'ancienne version, et vous obtenez deux installations dans le même dossier. J'ai travaillé cela parce que l'exécution de MSI (nouveau ou ancien) ferait apparaître l'écran de réparation/suppression.
Le programme n'a pas non plus été remplacé par la nouvelle version.
Voici le début de mon script Wix:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*"
Name="Foo"
Language="1033"
Codepage="1252"
Version="!(bind.FileVersion.Foo.exe)"
Manufacturer="Foo Bar Ltd."
UpgradeCode="dac2fab2-7d76-4e47-b25f-0748380dab81">
<Package
Description="Foo"
Comments="This installer database contains the logic and data required to install Foo."
InstallerVersion="300"
Languages="1033"
SummaryCodepage="1252"
Platform="x86"
Compressed="yes" />
<!-- Remove older versions -->
<!-- Important note: MSI ignores the last version digit 1.0.0.? when comparing versions, so always change at least the 3rd digit for new external releases-->
<MajorUpgrade DowngradeErrorMessage="The version currently installed is newer than the version you are attempting to install."/>