我试图将我的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" >
答案 0 :(得分:4)
如果你无法从程序集中绑定/推断,那么你需要让你的构建自动化将一个wix变量传递给candle.exe并使用它而不是你的绑定语句。
在托管代码/ vsts / tfs环境中,我的典型流程是构建定义是真实的来源,它在构建期间递增并设置构建数。 powershell脚本基于此更新我的AssemblyInfo文件中的所有AssemblyFileVersion属性,我的wixproj(votive / msbuild)对此变量执行正则表达式匹配以将其传递给candle。