2017-01-10 6 views
0

Ich versuche, die Software, die ich mit einigen Parametern nach der Installation installieren, um eine Initialisierungsaufgabe durchzuführen. Ich möchte die benutzerdefinierte Aktion nur nach der ersten Installation und nicht nach einem Upgrade starten.Wix starten installierte Software nach der ersten Installation und nicht nach der Aktualisierung

Der folgende Code startet die custum-Aktion nach der ersten Installation und einem Upgrade.

<CustomAction Id="MyAction" 
    Directory="TARGETDIR" 
    ExeCommand="[INSTALL_ROOT]MySoft.exe myarg" 
    Execute="immediate" 
    Return="ignore" 
    Impersonate="yes" /> 
<InstallExecuteSequence> 
    <Custom Action="MyAction" After='InstallFinalize'>(NOT Installed) AND (NOT UPGRADINGPRODUCTCODE) </Custom> 
</InstallExecuteSequence> 

Was ist das Problem?

Antwort

2

Führen Sie die MSI und erstellen Sie ein Protokoll mit msiexec/I [Pfad zu MSI]/l * vx [Pfad zur Protokolldatei] und sehen Sie, wann Ihre benutzerdefinierte Aktion aufgerufen wird und was das Protokoll darüber sagt.

Wüssten Sie, ob das Programm gestartet und abgestürzt ist, weil es (z. B.) erhöhte Privilegien erfordert? Sie gehen davon aus, dass die Installation fehlerhaft ist, weil Sie vermutlich nicht das Ergebnis Ihres Programms sehen, aber wenn es abgestürzt ist, wie würden Sie das wissen? Das Protokoll wird Ihnen mitteilen, ob es versucht hat, es auszuführen, und beachten Sie, dass das Zurückgeben von = ignore bedeutet, dass die Installation fortgesetzt wird, selbst wenn es fehlschlägt.

Wenn "nach einem Upgrade" bedeutet, dass dies das Upgrade-MSI ist, dann ist Ihre Bedingung falsch, da UPGRADINGPRODUCTCODE beim Upgrade festgelegt wird und nicht, wenn Ihr Produkt das Upgrade ist. Sie benötigen WIX_UPGRADE_DETECTED als Bedingung, wenn dies das Upgrade-Setup ist.

+0

Thx! WIX_UPGRADE_DETECTED ist was ich brauchte. Und danke für den Hinweis auf das Log, sehr nützlich für das Debuggen. Dieser [andere Beitrag] (http://stackoverflow.com/questions/18531272/how-do-i-disking-between-a-normal-install-and-an-upgrade-in-wix) war ebenfalls sehr nützlich um ihn zu identifizieren verschiedene Szenarien. – skuallpa

Verwandte Themen