如何在WIX中使用蜡烛定义项目变量?

时间:2015-02-24 17:28:58

标签: msbuild wix installer wix3.5

我想获取一个现有的项目变量并扩展它,但我希望它是全局的,这样我就不必将它包含在每个wxs文件中。

我想扩展的是:

$(var.MyProject.TargetDir)

我想转向制作

var.MyProject.TargetDir.Help=$(var.MyProject.TargetDir)Help\

我怎样才能做到这一点?

我知道我可以这样做:

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
   <?define var.MyProject.TargetDir.Help=$(var.MyProject.TargetDir)Help\ ?>

但是我必须在每个文件中执行此操作,否则我必须创建一个wxi文件并将其包含在每个文件中。我希望在构建之前预先定义它。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:2)

您可以使用Candle定义预处理器变量:

candle.exe -dMyVariable=whatever.

这不是一个难以找到谷歌的答案,但我的问题是我试图做:

candle.exe -dMyProject.TargetDir.Help=$(var.MyProject.TargetDir)Help\

所以我有点粗心忘记$(var.MyProject.TargetDir)也是由蜡烛创建的,我不能在它创建之前引用它。

您必须手动查找文件的路径:

candle.exe -dMyProject.TargetDir.Help=$(SolutionDir)MyProject\bin\$(Configuration)\Help\

另外,请注意,您创建的变量不会以`var。&#39;

为前缀。