Frage

Ich versuche, einen Prozess vor der Deinstallation mit WIX zu schließen. Ich habe bestätigt, dass es so lange funktioniert, wie es ein sichtbares Fenster gibt, aber wenn es kein sichtbares Fenster gibt (was die meiste Zeit mit dieser App der Fall ist, da es sich um eine System -Tray -App handelt), hängt der Deinstaller nur und hängt nur und Setzt sich schließlich mit der Deinstallation fort und lässt den Prozess laufen.

Entsprechend Dieser Forum Post, Es scheint, als hätte Wix in der Vergangenheit Probleme mit dem Schließen von Minimierungen gehabt, also frage ich mich, ob dies miteinander verbunden ist.

Irgendwelche Vorschläge, was ich sonst noch tun kann, um sicherzustellen, dass der Vorgang heruntergefahren wird? Gibt es eine Möglichkeit, die Nachricht in meiner App mit der Win32 -API zu erfassen?

Hier ist die Erklärung für die Kollektion:

<util:CloseApplication Id="CloseApp" CloseMessage="yes" Target="App.exe" RebootPrompt="yes" />

Und hier ist die benutzerdefinierte Aktion:

<Custom Before="InstallInitialize" Action="WixCloseApplications">REMOVE = "ALL"</Custom>
War es hilfreich?

Lösung

Es sieht so aus, als würden Sie die planen WixCloseApplications Benutzerdefinierte Aktion vor der Installationstransaktion. Die Art und Weise, wie die benutzerdefinierte Aktion funktioniert, ist eine aufgeschobene Aktion geplant, die die Anwendungen tatsächlich schließt. Es kann diese Arbeit nicht erledigen, wenn es nicht während der Transaktion passiert (After="InstallInitialize").

Das Fix ist wahrscheinlich ziemlich einfach. Entferne das Custom/@Action="WixCloseApplications" Element.

Andere Tipps

Vergessen Sie zunächst nicht zu referenzieren WIXUTILEXTENSON.DLL Montage. Überprüfen Sie auch, ob Wix Element enthält Definition von Utilextension Namespace:

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">

Mir ist aufgefallen, dass Sie Ihre benutzerdefinierte Aktion ändern sollten, um vor der Installinitialisierung ausgeführt zu werden.

<Custom Before="InstallInitialize" Action="WixCloseApplications">REMOVE = "ALL"</Custom>

Wenn Sie diese Änderungen anwenden und die Erweiterung der Flüssigkeitsanwendungen nicht funktioniert, protokollieren Sie den Installationsprozess mit Verwendung

msiexec /i MyApplication.msi /l*v MyLogFile.txt

Ich habe auch diesem Problem konfrontiert. Das Ändern des Vorattributs in "Installvalidat" hat für mich funktioniert.

<Custom Before="InstallValidate" Action="WixCloseApplications"/>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top