gpt4 book ai didi

wix - 为什么我的 ifndef 部分不起作用?

转载 作者:行者123 更新时间:2023-12-02 07:42:03 26 4
gpt4 key购买 nike

我的 program.wxs 文件中有以下片段:

<?ifndef $(var.TwoOnly) ?>
<Feature Id="FeatureOne" ... >
...
</Feature>
<?endif ?>

<?ifndef $(var.OneOnly) ?>
<Feature Id="FeatureTwo" ... >
...
</Feature>
<?endif ?>

我正在使用以下命令编译它:

candle -dOneOnly=1 program.wxs

查看编译后的program.wixobj,我可以看到Feature Two的声明都在那里,运行light后,列出了两个特性,安装程序函数就好像没有设置 OneOnlyTwoOnly 一样。为什么我的 ifndef block 不能正常工作?

注意:我还有以下内容:

<?ifdef $(var.OneOnly) ?>
<?define productName = One Only ?>
<?else?>
<?ifdef $(var.TwoOnly) ?>
<?define productName = Two Only ?>
<?else?>
<?define productName = Both ?>
<?endif?>
<?endif?>

即使在编译期间设置了 OneOnly,名称也会显示为 Both

编辑

我已将我的条件的复杂性降低到 the documentation 中所示的最小情况:

<?ifndef $(var.TwoOnly) ?>
<?include featureOne.wxi ?>
<?endif?>

这仍然不起作用。

最佳答案

当使用 ifdefifndef 时,变量必须没有 $(var.) 语法。

<?ifndef TwoOnly ?>
<?include featureOne.wxi ?>
<?endif?>

这有效。

关于wix - 为什么我的 ifndef 部分不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10089739/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com