在Wix中修改产品版本

时间:2018-04-26 15:10:16

标签: version-control wix windows-installer

我试图将我的exe文件中的文件版本绑定以用作产品版本。以下:How can I set the WiX installer version to the current build version?

问题是我的程序集以例如2018.0.0.0的格式构建。主要升级需要版本号最大255,这意味着我必须从productVersion变量中删除前两个数字,然后再将其设置为ProductVersion属性。有没有办法通过xsl或其他东西修改变量?

通过自定义操作进行修改是无可替代的,因为我希望在msi文件中设置属性。

赞赏这个丛林中的任何帮助,

 <?define productVersion= !(bind.FileVersion.MyExe.Exe) ?>

 <Product Id="*" 
       UpgradeCode="12345678-1234-1234-1234-123456789123" 
       Name="My Application" 
       Language ="1033" 
       Version="$(var.productVersion)"
       Manufacturer="My Company" >

1 个答案:

答案 0 :(得分:4)

如果你无法从程序集中绑定/推断,那么你需要让你的构建自动化将一个wix变量传递给candle.exe并使用它而不是你的绑定语句。

在托管代码/ vsts / tfs环境中,我的典型流程是构建定义是真实的来源,它在构建期间递增并设置构建数。 powershell脚本基于此更新我的AssemblyInfo文件中的所有AssemblyFileVersion属性,我的wixproj(votive / msbuild)对此变量执行正则表达式匹配以将其传递给candle。