Ich habe eine Eigenschaft, um Verknüpfungen zu installieren, die über Befehlszeilenargumente übergeben werden müssen. Die Bedingungen scheinen zu funktionieren, wenn ich die Eigenschaften innerhalb der wxs-Datei festlege, aber sie scheinen ignoriert zu werden, wenn sie über die Befehlszeile gesetzt werden. Aus dem Protokoll sehe ich, dass sie eingestellt werden:Von der Befehlszeile übergebene WiX-Bedingungseigenschaften funktionieren nicht?
MSI (s) (24:C8) [11:01:32:234]: PROPERTY CHANGE: Modifying INSTALLSTARTUPSHORTCUT property. Its current value is '0'. Its new value: '1'.
MSI (s) (24:C8) [11:01:32:234]: PROPERTY CHANGE: Modifying INSTALLSTARTMENUSHORTCUT property. Its current value is '0'. Its new value: '1'.
MSI (s) (24:C8) [11:01:32:234]: PROPERTY CHANGE: Modifying INSTALLDESKTOPSHORTCUT property. Its current value is '0'. Its new value: '1'.
Allerdings werden sie die Verknüpfungen nicht installiert werden.
Es scheint auch so, als müssten sie in einer eigenen Komponente sein, um Bedingungen auf ihnen setzen zu können, sie können nicht mehr als Abkürzungen angekündigt werden. Wie würden Sie die angekündigten Shortcuts bedingt installieren?
Aktuelle Kurzcode:
<Property Id="INSTALLSTARTMENUSHORTCUT" Value="0"/>
...
<Component Id="StartMenuShortcut" Guid="MY-GUID">
<Condition>INSTALLSTARTMENUSHORTCUT</Condition>
<Shortcut Id="StartMenuServerShortcut"
Directory="ProgramMenuDir"
Name="Application Name" WorkingDirectory="INSTALLDIR" Advertise="no"
Target="[!FileEXE]"
Icon="Icon.ico" />
</Component>
Und für andere Verknüpfungen wiederholt
Edit:
Der Versuch, was Sacha vorgeschlagen und das Hinzufügen der folgenden:
<Property Id="INSTALLSTARTUPSHORTCUT" Value="0" Secure="yes"/>
<Property Id="INSTALLDESKTOPSHORTCUT" Value="0" Secure="yes"/>
<Property Id="INSTALLSTARTMENUSHORTCUT" Value="0" Secure="yes"/>
Jetzt alles installiert die Verknüpfungen, obwohl sie auf 0 sowohl in der XML und o gesetzt sind n der Befehlszeile. Die Befehlszeile, die ich übergebe ist:
msiexec /i MySetup.msi INSTALLSTARTUPSHORTCUT=0 INSTALLDESKTOPSHORTCUT=0 INSTALLSTARTMENUSHORTCUT=0 /l*v inst.log /qb
versucht, die Werte in Anführungszeichen setzen und immer noch nicht gehen. Nicht hier gezeigt, aber ich war erfolgreich bei der Manipulation der ALLUSERS-Eigenschaft, um Benutzer-oder Maschinen-Registrierungen zu tun, indem Sie ALLUSERS = "" oder ALLUSERS = "2" So sollte die Weitergabe von Eigenschaften möglich sein, aber ich bin mir nicht sicher was Ich mache falsch.
Danke Rob. Es scheint inkonsistent, dass, wenn Sie 0 direkt in die Bedingung-Eigenschaft setzen, es zu false auswertet, aber in einer Eigenschaft wird es als wahr ausgewertet. – Davy8
Ich mache die Regeln nicht, ich lebe nur nach ihnen. –
Und wenn Sie standardmäßig auf "ja" setzen möchten, verwenden Sie die hier beschriebenen Bedingungen https://www.firegiant.com/wix/tutorial/com-expression-syntax-miscellanea/expression-syntax/ anstatt nur zu bewerten, ob eine Eigenschaft vorhanden ist überhaupt gesetzt – Martin