So habe ich einen Windows-Dienst, der mehrere Instanzen auf einem einzigen Server installiert haben kann. Das Installationsprogramm muss in der Lage sein, eine einzelne Instanz zu aktualisieren. Das Installationsprogramm verwendet Instance Transforms, aber ich bin mir nicht sicher, wie wichtige Upgrades funktionieren, wie ich es möchte.WiX - Durchführen einer größeren Aktualisierung bei einer Installation mit mehreren Instanzen
Für ein wichtiges Upgrade für Arbeit, mein Verständnis ist, dass ich den Produktcode ändern sollte, so Instanzen in dieser Form definiert sind:
<Instance ProductCode="*"
UpgradeCode="{SOMEGUID}"
ProductName="Instance 1"
Id="Instance1"/>
Die msi eine neue Instanz zu installieren, indem gestartet werden können:
msiexec.exe /i "installer.msi" TRANSFORMS=:Instance1 MSINEWINSTANCE=1
Doch nach viel der einzige Weg, die Suche ich gefunden habe, ein Upgrade auf eine bestimmte Instanz laufen ist dieses Format:
msiexec.exe /i "installer.msi" /n {PRODUCTCODE} REINSTALL=ALL REINSTALLMODE=vamus
Das Problem dabei ist, wenn der Produktcode automatisch für größere Upgrades generiert wird, dann weiß ich nicht, was es ist, so kann ich nicht auf die Befehlsargumente übergeben.
Gibt es eine Möglichkeit, ein Upgrade mit dem UpgradeCode oder InstanceID der Instanz statt des ProductCode zu starten? Da beide bleiben statisch. Alternativ kann ich die MSI ohne Argumente starten, eine vorhandene Instanz (über die Registrierungsprüfung) im UI-Dialogfeld auswählen und entsprechende Eigenschaften festlegen, um die msi in den Upgrade-Modus für diese Instanz zu zwingen?
Sie könnten dies hilfreich finden: http://sklyarenko.net/blog/2011/09/14/revisited-multiple-instance/ –
Es scheint mir, dass, sobald jede der Instanzen installiert ist, es ein Produkt mit einem Produktcode ist .Wenn Sie ein Upgrade durchführen, muss Ihr neues Produkt nur ein langwieriges Haupt-Upgrade durchführen und seine Aktualisierungstabelle mit dem Material füllen, das das vorherige Produkt ersetzt, das es ersetzen sollte. Nicht, dass ich viel über Instanzen weiß, aber Sie haben den herkömmlichen Ansatz der Verwendung von Aktualisierungstabellen ausprobiert, die Ihre neue Instanz veranlassen, Ihre alten Instanzen zu aktualisieren. Sagen Sie, dass Sie nicht jedes Produkt einzeln aktualisieren können, weil sie alle den gleichen Upgradecode haben? Gleiche Version? – PhilDW
Nur um Sie wissen zu lassen, dass Sie eine ** vollständige Liste ** von ** Produktcodes **, ** Upgrade-Codes ** und ** Produktnamen ** auf einem bestimmten Computer über PowerShell erhalten können: [** Wie kann Ich finde den Upgrade-Code für eine installierte MSI-Datei? **] (https://stackoverflow.com/questions/46637094/how-can-i-find-the-upgrade-code-for-an-installed-msi-file/46637095 # 46637095). –