WiX4 bootstrapper:在条件语句中使用运行时变量

问题描述 投票:0回答:1

我想根据传递的命令行参数使用各种 WIX 代码。

<Bundle ... >
  <Variable Name="INSTALL_CONDITION" Value="0" Type="numeric" bal:Overridable="yes" />
  <?ifdef INSTALL_CONDITION?>
     <!-- behaviour #1 -->
  <?else?>
     <!-- behaviour #2 -->
  <?endif?>

事实上,我的变量

INSTALL_CONDITION
在满足条件时并未定义,因为我一直得到“行为#2”

预期场景:

  <?if INSTALL_CONDITION = 1?>
     <!-- behaviour #1 -->
  <?else?>
     <!-- behaviour #2 -->
  <?endif?>

启动命令:

.\MyBundle.exe /log log.txt  INSTALL_CONDITION=1

日志中的变量:

Initializing numeric variable 'INSTALL_CONDITION' to value '0'
Setting string variable 'INSTALL_CONDITION' to value '1'
Variable: INSTALL_CONDITION = 1
wix bundle wix4
1个回答
0
投票

<?if?>
<?ifdef?>
预处理器指令。它们在编译期间进行评估,并且在运行时不起作用。对于运行时条件,请查找
Condition
属性,例如
ExePackage

© www.soinside.com 2019 - 2024. All rights reserved.