WiX预处理器<;?ifdef?>;具有多个变量和;或;
我有一个Wix项目,它使用编译常量和WiX预处理器<;?ifdef?>;具有多个变量和;或;,wix,Wix,我有一个Wix项目,它使用编译常量和进行不同的构建配置。是否可以检查是否使用和某种或定义了某些变量 我尝试了,但似乎不起作用,尽管我似乎也没有收到任何错误。用于检查是否定义了符号 试试。例如,如果您有: <?define A ?> <?define B ?> 然后: 是真的 是真的 为false 为false 和: <?ifdef A ?> <?ifdef B?> ... true ... <?endif
进行不同的构建配置。是否可以检查是否使用
和某种或定义了某些变量
我尝试了
,但似乎不起作用,尽管我似乎也没有收到任何错误。
用于检查是否定义了符号
试试
。例如,如果您有:
<?define A ?>
<?define B ?>
然后:
是真的
是真的
为false
为false
和:
<?ifdef A ?>
<?ifdef B?>
... true ...
<?endif ?>
<?endif ?>
... 真的。。。
或:
... 真的。。。
... 真的。。。
很抱歉,如果不清楚,但我正在尝试检查是否定义了某些符号,因此我无法使用
。让我把问题修改一下。对不起,我的回答有点偏了。您应该能够使用
测试是否定义了变量。我已经更新了我的答案,以包含一些示例。但是如果尚未定义A,则将出现错误。如果未定义A,则布尔表达式中的$(var.A)
将为false。在这方面,WIX预处理器类似于C/C++预处理器。请查看中的
。在本例中,未定义A,但整个表达式为true。很抱歉,您是对的。文档中的示例暗示了C/C++行为,但我刚刚运行了一个测试,未定义的变量会导致错误。
<?ifdef A ?>
... true ...
<?else?>
<?ifdef B?>
... true ...
<?endif ?>
<?endif ?>