如何在命令行中传递参数给candle,并让它覆盖目标.wxs文件中的值

5
我正在编写一个MSBUILD脚本,动态注入多个参数到一个wix项目中进行多次构建。我知道可以使用candle的-d开关来提供额外的参数。然而,我收到了几个类似于“变量'xxx'的值为'yyy',之前已经声明为'zzz'”的警告。这是可以理解的,因为在.wxs文件中,我已经为默认构建定义了这些值,构建将在警告后继续使用.wxs中的值。所以问题是:是否可能强制candle覆盖已经在.wxs文件中存在的这些参数。谢谢!

如果您在*.wxs文件中未分配这些变量,并使用<?ifdef?>检查它是否从命令行获取了一些值,那会怎样呢?如果没有,那么为其分配一些默认值。我认为值得一试。 - Yan Sklyarenko
谢谢 Yan,这是一个非常好的观点。 - Godsent
1个回答

5

预处理器变量只能被定义一次,因此你需要像这样:

<?ifndef Variable ?>
  <?define Variable="default" ?>
<?endif?>

为了防止重新定义,需要进行保护。这与WiX工具集所模拟的C/C++预处理器相同。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接