我在WiX中使用嵌套的ifdef结构,如下所示:
<?ifdef a?>
...
<?else?>
<?ifdef b?>
...
<?else?>
<?ifdef c?>
...
<?else?>
...
<?endif?>
<?endif?>
<?endif>
有没有办法(语法?)将其转换为:
<?ifdef a?>
...
<?else ifdef b?>
...
<?else ifdef c?>
...
<?else?>
...
<?endif>
答案 0 :(得分:0)
WIX工具集功能请求http://wixtoolset.org/issues/4767/要求新的预处理器函数$(fun.defined(X)),如果定义了变量X,则返回true。如果实现此功能,您可以按如下方式展平嵌套的<?ifdef ... ?>
结构:
<?if $(fun.defined(a)) ?>
...
<?elif $(fun.defined(b)) ?>
...
<?elif $(fun.defined(c)) ?>
...
<?else?>
...
<?endif>
不可否认,这不是今天有效的答案,但如果重要的话,可能值得游说WIX功能请求。