2016-10-14 3 views
0

Die MSI, an der ich gerade arbeite, muss einen Eigenschaftswert für SERVER_MODE von der Befehlszeile zum Starten senden. Es scheint jedoch, die Bedingung ist nicht da, weil die MSI einfach ohne Probleme installiert wird. Die Protokolldatei kann den Eigenschaftsnamen nicht finden, von dem ich annehme, dass er nicht definiert ist. Hier ist, was ich getan habe:Die Wix-Bedingung blockiert die MSI nicht durch die Installation

<Property Id="SERVER_MODE2" Secure="yes"> 

<CustomAction Id="CheckForDashboardProperty" Error="!(loc.LaunchFromDashboard)" /> 

<InstallExecuteSequence> 
    <Custom Action="CheckForDashboardProperty" Before="LaunchConditions">Not SERVER_MODE2 And Not Installed</Custom> 
</InstallExecuteSequence> 

<InstallUISequence> 
    <Custom Action="CheckForDashboardProperty" Before="LaunchConditions">Not SERVER_MODE2 And Not Installed</Custom> 
</InstallUISequence> 

Antwort

2

Startbedingungen müssen für die Installation zu True ausgewertet werden, daher sollte Ihre Bedingung den Eigenschaftswert nicht negieren. Sag einfach SERVER_MODE2.

Sie benötigen keinen nicht installierten Zustand, da Sie nie so weit kommen werden - wenn das Produkt (dh ProductCode) bereits installiert ist Windows wird Ihr MSI nicht ausführen, es wird in den Wartungsmodus für das aktuell installierte Produkt wechseln , die wahrscheinlich zu einer Reparatur führt.

Also alles, was Sie brauchen, wie die Bedingung SERVER_MODE2

ist ... und ich nehme an SERVER_MODE in Ihrem Text ist ein Tippfehler.

Verwandte Themen