如何在WiX Bootstrapper项目中设置自定义ProductVersion?
WiX Bootstrapper自定义ProductVersion问题
在WiX Bootstrapper项目中,可通过Bundle元素的Version属性定义Bundle版本,示例代码如下:
<Bundle Name="Sample" Manufacturer="Sample Ltd." Version="1.0.0.0" UpgradeCode="5fffcf4d-b3e4-4eba-a850-ab8ab3fe501d"> </Bundle>
该Version属性值会被用于最终生成的.exe文件的FileVersion和ProductVersion字段。
我们需要将ProductVersion设置为自定义格式的值,例如1.0.0.0 cs203948,请问是否可行?目前我们使用ResourceHacker工具事后修改ProductVersion,但该工具在本地机器上出现“内存不足”等问题,因此希望不再依赖它。
更新1:
目前看来WiX本身并不支持这种自定义格式的ProductVersion,查看WiX源码中的UpdateBurnResources方法可知这一点。因此只能通过事后修改的方式调整ProductVersion。
我已尝试过以下工具:
- ResourceHacker:在虚拟机中仍可运行,但在普通机器上无法正常使用(已联系工具开发者)
- ResourceTuner:可用,但并非免费工具,且不清楚如何授权以集成到运行在多台电脑上的MSBuild流程中
- RCEdit:修改后会损坏可执行文件
- WinAPI的UpdateResourceA方法:修改后会损坏可执行文件
更新2:
- StampVer:仅支持“X.X.X.X”格式的版本号,无法满足自定义需求
提前致谢!
内容的提问来源于stack exchange,提问作者roli09
相关产品推荐
相关产品推荐

