我正在编写一个MSBUILD脚本,动态注入多个参数到一个wix项目中进行多次构建。我知道可以使用candle的-d开关来提供额外的参数。然而,我收到了几个类似于“变量'xxx'的值为'yyy',之前已经声明为'zzz'”的警告。这是可以理解的,因为在.wxs文件中,我已经为默认构建定义了这些值,构建将在警告后继续使用.wxs中的值。所以问题是:是否可能强制candle覆盖已经在.wxs文件中存在的这些参数。谢谢!
预处理器变量只能被定义一次,因此你需要像这样: <?ifndef Variable ?> <?define Variable="default" ?> <?endif?> 为了防止重新定义,需要进行保护。这与WiX工具集所模拟的C/C++预处理器相同。
*.wxs
文件中未分配这些变量,并使用<?ifdef?>
检查它是否从命令行获取了一些值,那会怎样呢?如果没有,那么为其分配一些默认值。我认为值得一试。 - Yan Sklyarenko