WiX预处理器<! - ?ifdef? - >带有多个变量和“OR”

时间:2015-05-18 21:10:20

标签: wix

我有一个Wix项目,它使用编译常量和<?ifdef ?>用于不同的构建配置。是否可以使用<?ifdef ?>和某种OR检查某些变量是否已定义?

我尝试了<?ifdef A Or B ?>这似乎不起作用,但我似乎也没有任何错误。

2 个答案:

答案 0 :(得分:1)

<?ifdef ... ?>旨在检查是否定义了符号。

试试<?if A Or B ?>。例如,如果你有:

<?define A ?>
<?define B ?>

然后:

  • <?if $(var.A) ?>是真的
  • <?if $(var.A) Or $(var.C) ?>是真的
  • <?if $(var.A) And $(var.C) ?>是假的
  • <?if $(var.C) Or $(var.D) ?>是假的

http://wixtoolset.org/documentation/manual/v3/overview/preprocessor.html

答案 1 :(得分:1)

AND:

<?ifdef A ?>
    <?ifdef B?>
       ... true ...
   <?endif ?>
<?endif ?>

OR:

<?ifdef A ?>
    ... true ...
<?else?>
   <?ifdef B?>
       ... true ...
   <?endif ?>
<?endif ?>
相关问题