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

How can I define a project variable with candle in WIX?

我想使用现有的项目变量并扩展它,但我希望它是全局的,这样我就不必将它包含在每个 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 文件并将其包含在每个文件中。我希望在构建之前预定义它。我怎样才能做到这一点?

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

candle.exe -dMyVariable=whatever.

google 这不是一个很难找到的答案,但我的问题是我试图这样做:

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

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

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

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

另外请注意,您创建的变量没有前缀“var.”