Ich weiß nicht, warum die Rollback-Aktion nicht im Upgrade-Prozess arbeiten, aber es im Installationsprozess arbeiten, habe ich fast alle Methoden, die ich in der Google gefunden habe versucht, ich hoffe ich kann Finden Sie die Antwort hier, also meine Frage ist: 1.Wir müssen zwei benutzerdefinierte Aktion definieren? Einer ist zurückgestellt, ein anderer ist Rollback, und Rollback muss vor dem Zurückgestellt sein? aber meine Rollback-Aktion möchte nur den Dienst neu starten, wenn das Upgrade fehlschlagen, so ist es notwendig, dies zu tun, und ich habe diese Methode versucht, es funktioniert nicht, aber es funktioniert in der Installation, die ich gerade eine Rollback-Aktion definiert sehen können, wie die Folge :(Rollback-Aktion ist zwischen in InstallInitialize und InstallFinalize)Wix Rollback benutzerdefinierte Aktion funktioniert nicht in Upgrade abbrechen
1.in InstallExecuteSequence
<Custom Action="StartAllServicesWhenRollBack" After="InstallInitialize">1</Custom>
<Custom Action="UninstallMysqlOdbcDriver" After="StartAllServicesWhenRollBack">1</Custom>
2.in Fragment
<CustomAction Id="StartAllServicesWhenRollBack" BinaryKey="StartAllServicesWhenRollBackScript" VBScriptCall="" Execute="rollback" Return="check"/>
<Binary Id="StartAllServicesWhenRollBackScript" SourceFile="startInstall.vbs" />
<CustomAction Id="UninstallMysqlOdbcDriver" BinaryKey="UninstallMysqlOdbcDriverScript" VBScriptCall="" Execute="immediate" Return="check"/>
<Binary Id="UninstallMysqlOdbcDriverScript" SourceFile="UninstallMysqlOdbcDriver.vbs" />
es im Installationsrollback, aber nicht in Upgrade arbeiten, eine andere Methode ist:
<Custom Action="StartAllServicesWhenRollBack" Before="StopAllServicesa">1</Custom>
<Custom Action="StopAllServicesa" After="InstallInitialize">1</Custom>
<CustomAction Id="StartAllServicesWhenRollBack" BinaryKey="StartAllServicesWhenRollBackScript" VBScriptCall="" Execute="rollback" Return="check"/>
<Binary Id="StartAllServicesWhenRollBackScript" SourceFile="startInstall.vbs" />
<CustomAction Id="StopAllServicesa" BinaryKey="StopAllServicesaScript" VBScriptCall="" Execute="deferred" Return="check"/>
<Binary Id="StopAllServicesaScript" SourceFile="stopService.vbs" />
diese Methode nicht in Upgrade arbeiten, also im darüber zu verwirren, wird die StopAllServicesa auszuführen, aber Rollback-Aktion ausführen tut, wie es scheint Die Rollback-Aktion wurde nicht im Rollback-Skript geschrieben. Wie finde ich das Rollback-Skript im Protokoll?
Möglicherweise müssen Sie die Frage klären. Ein wichtiges Upgrade ist eine Installation und Deinstallation. Sie haben nicht angegeben, wo Ihr Upgrade geplant ist. Sie haben auch nicht angegeben, wo der Aktualisierungsfehler auftritt, da die Aktualisierungsinstallation selbst fehlschlagen kann, bevor das ältere Produkt bei der RemoveExistingProducts-Aktion entfernt wird, oder die Deinstallation des älteren Produkts fehlschlagen und sich selbst neu installieren und das Upgrade zurücksetzen kann. Das Rollback-Skript befindet sich nicht im Protokoll, aber ein vollständiges ausführliches Protokoll des gesamten Upgrades enthält die Informationen trotzdem, da es sich um ein Protokoll der Skriptaktionen handelt. – PhilDW
OK, THX, es ist ein wichtiges Upgrade, weil das Major-Upgrade das ältere Produkt deinstallieren wird, so dass meine Rollback-Aktion in der neuen Version funktionieren sollte, ist das richtig, was bedeutet, dass ein Upgrade zwei Stufen hat, wenn ich auf Abbrechen klicke Button bei der Deinstallation der alten Versionsphase, meine Rollback-Aktion funktioniert nicht, weil das ältere Produkt keine Rollback-Aktion hat, aber wenn ich bei der Installation der neuen Version stoppe, wird meine Rollback-Aktion funktionieren, also das ist mein Testergebnis, also was ich gesagt habe, ist richtig ? Das ist mein Verständnis..ich weiß nicht richtig oder falsch .. –
Sie haben immer noch nicht gesagt, wo Ihr Haupt-Upgrade sequenziert wird, das macht einen Unterschied. Das Haupt-Upgrade findet während der einzelnen Fortschrittsleiste statt (vorausgesetzt, Sie führen ein normales Upgrade durch). Sind Sie also sicher, dass Sie wissen, welche Phase des Upgrades abgebrochen wird? – PhilDW