J'ai la propriété d'installer ou non les raccourcis qui doivent être passés via des arguments de ligne de commande. Les conditions semblent fonctionner lorsque je définis les propriétés dans le fichier wxs, mais elles semblent être ignorées lors de leur définition via la ligne de commande. À partir du journal, je vois qu'ils sont en cours d'établissement:Les propriétés de condition WiX transmises à partir de la ligne de commande ne fonctionnent pas?
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'.
Cependant, ils les raccourcis ne sont pas installés.
En outre, il semble que, comme ils doivent être dans leur propre composant pour pouvoir définir des conditions sur eux, ils ne peuvent plus être des raccourcis annoncés. Comment obtiendriez-vous des raccourcis annoncés conditionnellement installés?
Code raccourci actuel:
<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>
répétés pour d'autres raccourcis
Edit:
Essayer ce que Sacha a suggéré et en ajoutant ce qui suit:
<Property Id="INSTALLSTARTUPSHORTCUT" Value="0" Secure="yes"/>
<Property Id="INSTALLDESKTOPSHORTCUT" Value="0" Secure="yes"/>
<Property Id="INSTALLSTARTMENUSHORTCUT" Value="0" Secure="yes"/>
Maintenant, il installe tous les les raccourcis, même si elles sont définies à 0 à la fois dans le xml et o n la ligne de commande. La ligne de commande que je passe est:
msiexec /i MySetup.msi INSTALLSTARTUPSHORTCUT=0 INSTALLDESKTOPSHORTCUT=0 INSTALLSTARTMENUSHORTCUT=0 /l*v inst.log /qb
essayé de mettre les valeurs entre guillemets et toujours pas aller. Pas montré ici, mais j'ai réussi à manipuler la propriété ALLUSERS pour faire des registres par utilisateur ou par machine en faisant ALLUSERS = "" ou ALLUSERS = "2" Donc passer des propriétés devrait être possible, mais je ne suis pas sûr de ce que Je fais mal.
Merci Rob. Il semble incohérent que si vous mettez directement 0 dans la propriété condition, elle est évaluée à false, mais dans une propriété, elle est évaluée à true. – Davy8
Je ne fais pas les règles, je vis juste à côté d'elles. –
Et si vous voulez par défaut "oui" utiliser les conditions décrites ici https://www.firegiant.com/wix/tutorial/com-expression-syntax-miscellanea/expression-syntax/ au lieu de simplement évaluer si une propriété est mis à tous – Martin