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

时间:2012-07-27 11:45:04

标签: msbuild wix

我正在研究一个MSBUILD脚本,为多个版本的wix项目动态注入大量参数,我知道我可以在蜡烛中使用-d开关来提供额外的参数。

然而,我得到了几个警告,类似于“变量'xxx',其值'yyy'先前已声明为值'zzz'”,这是可以理解的,因为.wxs我已经为默认值定义了这些值然后,构建将在警告之后继续使用.wxs中的值。

所以问题是......是否可以强制蜡烛覆盖已经存在于.wxs中的这些参数。

提前致谢。

1 个答案:

答案 0 :(得分:5)

预处理程序变量只能定义一次,因此您需要以下内容:

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

防止重新定义。这与使用WiX工具集建模的C / C ++预处理器相同。