2016-04-19 13 views
1

ich wix Bundle bin mit Kette von MSIs zu installieren, wenn ich versuche, die ältere Version zu aktualisieren Deinstallation ist nichtWie die vorherige Version deinstallieren und neueste Version mit Wix Bundle installiert

mir bitte helfen zu tun eines der unten angegebenen Szenarien

  1. Wie ich die vorherige Version zu deinstallieren, bevor sie die neueste Version
  2. immer ein Upgrade installieren Release wichtigsten in meinem Fall auf die neueste Version, sein kann oder minor Release oder Patch-Release
+0

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. –

Antwort

2

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.

+0

Danke, ich benutze die gleiche Version für Bundle und auch für die MSIs. Kein Problem, ich kann meinen Code ändern, um nur die Bundle-Version zu überprüfen. Ich möchte nichts auf der Benutzeroberfläche anzeigen, der Benutzer wird nur auf die Installation klicken, sodass das Paket aktualisiert werden muss, indem die alte Version entfernt wird. Können Sie mir Beispielcode für msi's zur Verfügung stellen und brennen? –

+0

Siehe mein Update, –

+0

Dank Andrey, ich kann überprüfen und Sie wissen lassen Können Sie eine Sache klären, muss ich hinzufügen, wichtige Upgrade-Element in MSI auch? –

Verwandte Themen