3

在我的安装程序项目 (WiX) 中,我在属性页面的 Build 选项卡上定义了一个预处理器变量,如下所示:

Version=1.1.0.0

为了争论,假设我可以很容易地将它定义为变量而不是预处理器变量。

因此,我的目标是:我想在安装程序输出名称中使用此变量:

Me.Common_$(Version)

当然,上述方法不起作用 - 未找到引用的变量,因此实际输出最终为Me.Common_.msi. 有没有办法在这种情况下使用用户定义的变量?


另一个可行的选择是在构建后事件中重命名 MSI 文件。但是,我仍然无法在此处访问该变量。

ren "!(TargetPath)" "$(TargetName)_$(Version)$(TargetExt)"

这些方法中的任何一种的解决方案都对我有用。

4

2 回答 2

3

在第一个 PropertyGroup 节点下的 .wixproj 文件中查找/添加这些:

<Version Condition=" '$(Version)' == ''">1.1.0.0</Version>
<OutputName>My.Common_$(Version)</OutputName>

然后,当您编译时,您可以使用“/p”开关传递版本,即:

msbuild <your.wifproj> /p:Version=1.1.2.0 /t:rebuild
于 2012-11-23T14:29:42.763 回答
0

我不确定你会如何做到这一点,只使用 WIX。

我会尝试使用 MSBuild 和Target Builds

看看我在 SO 上的帖子,将参数传递给 MSBuild

于 2012-11-23T14:28:58.820 回答