Es gibt mehr als nur die Deinstallation. Sehen wir uns zuerst Ihre Versionierung an. Das Bundle selbst hat eine Version und jeder von msis hat eine eigene Version. Ich hoffe, dass, wenn es Zeit für das Upgrade gibt, Sie das gesamte Paket aktualisieren müssen, ohne jedes einzelne Paket einzeln zu überprüfen, es könnte es ein bisschen einfacher machen. So jetzt, jeder MSIs sollte Product > Upgrade
Attribut gesetzt haben und Upgrade
Knoten haben. Die Werte sollten gleich sein. Das Bundle sollte das Attribut UpgradeCode
haben. Dies sollte ausreichen, um die vorherige Version zu deinstallieren und eine neue zu installieren.
Jetzt, wenn Sie etwas in der Benutzeroberfläche anzeigen möchten, können Sie zu Ihrer Bootstrapper-Anwendung gehen und alle Arten von Detect
Ereignisse abonnieren. Es gibt einige im Zusammenhang mit dem Upgrade.
Hier ist das MSI, das Update unterstützen:
<Product Id="*" Name="$(var.ProductName)" Language="1033" Version="1.0.0.5" Manufacturer="$(var.Manufacturer)" Upgrade="GUID_HERE">
<Package InstallerVersion="450" Compressed="yes" InstallScope="perMachine" />
<Upgrade Id="SAME_GUID_HERE"/>
Und brennen:
<Bundle Name="$(var.ProductName)"
Version="1.0.0.5"
Manufacturer="$(var.Manufacturer)"
UpgradeCode="ANOTHER_GUID"
Also, wenn Sie Pakete mit GUIDs innen installieren, wird die nächste Version erkennen (mit GUID), dass das Produkt installiert ist schon und werde ein Upgrade machen.
Wenn Sie Windows Installer-Hauptaktualisierungen im mitgelieferten MSI implementieren, müssen Sie die Deinstallation vor der Installation einer neueren Version nicht durchführen. Beachten Sie auch, dass der Bootstrapper von wix Versionen, die sich nur im 4. Teil der Bundle-Version unterscheiden, ordnungsgemäß aktualisiert. Damit ein Wix-Paket korrekt aktualisiert wird, müssen sich ihre Versionen unterscheiden und sie müssen denselben Upgrade-Code verwenden. –