WiX预处理器<;?ifdef?>;具有多个变量和;或;

WiX预处理器<;?ifdef?>;具有多个变量和;或;,wix,Wix,我有一个Wix项目,它使用编译常量和进行不同的构建配置。是否可以检查是否使用和某种或定义了某些变量 我尝试了,但似乎不起作用,尽管我似乎也没有收到任何错误。用于检查是否定义了符号 试试。例如,如果您有: <?define A ?> <?define B ?> 然后: 是真的 是真的 为false 为false 和: <?ifdef A ?> <?ifdef B?> ... true ... <?endif

我有一个Wix项目,它使用编译常量和
进行不同的构建配置。是否可以检查是否使用
和某种
定义了某些变量

我尝试了
,但似乎不起作用,尽管我似乎也没有收到任何错误。

用于检查是否定义了符号

试试
。例如,如果您有:

<?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 ?>