有没有办法在WiX中展平嵌套的ifdef结构?

时间:2014-06-16 07:36:36

标签: wix

我在WiX中使用嵌套的ifdef结构,如下所示:

<?ifdef a?>
    ...
<?else?>
    <?ifdef b?>
        ...
    <?else?>
        <?ifdef c?>
            ...
        <?else?>
            ...
        <?endif?>
    <?endif?>
<?endif>

有没有办法(语法?)将其转换为:

<?ifdef a?>
    ...
<?else ifdef b?>
    ...
<?else ifdef c?>
    ...
<?else?>
    ...
<?endif>

1 个答案:

答案 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功能请求。