2016-05-03 2 views
1

Ich habe einen Bootstrap-Setup umgehen, die Kommandozeilen-Parameter akzeptiert, wie in this Link erwähnt und wie unten erwähnt:, wie Befehlszeilenargumente mit UI-Seite in Bootstrap-Programm in WiX

<Wix> 
    <Bundle> 
    <Variable Name="CommandLineArg" bal:Overridable="yes"/> 
    <Chain> 
     <MsiPackage> 
     <MsiProperty Name="CommandLineArg" Value="[CommandLineArg]"/> 
     </MsiPackage> 
    </Chain> 
    </Bundle> 
</Wix> 

Ich benutze dieses Argument Befehlszeile Führen Sie eine benutzerdefinierte Aktion bedingt aus. Dies funktioniert einwandfrei, wenn ich diese Befehlszeile durchführe, d. H. Wenn ich den Parameter übergebe, wird die benutzerdefinierte Aktion ausgeführt, und wenn nicht, wird sie nicht ausgeführt. Aber was ich will ist, wenn der Benutzer es durch UI initiiert, dh durch Doppelklick auf das Paket, der Benutzer die EULA-Seite angezeigt wird und wenn der Benutzer es akzeptiert, dann sollten alle benutzerdefinierten Aktionen ausgeführt werden, einschließlich der, auf der die Bedingung basiert das Befehlszeilenargument. Wie stelle ich sicher, dass im Moment, dass die benutzerdefinierte Aktion nicht ausgeführt wird, wenn die Installation über die Befehlszeile initiiert wird.

Alle Vorschläge sind willkommen. Lass es mich wissen, wenn meine Frage nicht klar ist.

Antwort

0

Fügen Sie Ihrer Variablen einen Standardwert hinzu.

Zum Beispiel:

<Wix> 
    <Bundle> 
    <Variable Name="CommandLineArg" bal:Overridable="yes" Type="string" Value="hello"/> 
    <Chain> 
     <MsiPackage> 
     <MsiProperty Name="CommandLineArg" Value="[CommandLineArg]"/> 
     </MsiPackage> 
    </Chain> 
    </Bundle> 
</Wix> 

Auf diese Weise CommandLineArg wird immer einen Wert haben, auch wenn der Benutzer doppelklickt Sie Ihren Installateur.