我有一个WiX Burn项目,我希望每次都能运行一个MSI文件,而不需要参考版本号。
更具体地说,假设我有 MSI A , MSI B 和 MSI C 。
当我推出项目更新时(我使用主要更新,因为这似乎比复杂的补丁和那种性质的东西更容易),我想:
MSI B 运行 if-and-only-if 其版本号大于目标计算机上的版本号。
(到目前为止,这很好,因为这正是Windows Installer的工作方式。)
最后, MSI C 每次运行。单。时间。无论如何。
我可以尝试的事情:
我可以确保每个版本的版本号都变得越来越大,但如果我被公共汽车撞到怎么办?此安装程序可能会持续一段时间。
我可以将其中一个可执行文件的版本号绑定到MSI C的版本号,但如果在该特定部署中未更新可执行文件该怎么办?没有安装可执行文件,保证每次推出都会更新。
是否有类似的方法将版本号转换为int然后运行自定义操作,增加int,然后将其转换回版本号,或类似的东西?
或者 - 更好 - 某种转换?
答案 0 :(得分:0)
您可以设置主要升级选项以升级已安装的软件包,无论版本号如何。
>>>
print_list = lambda lst: lst[::-1]
lst_int = [1,2,3,4,5,6,7,8]
lst_str = ['1','2','3','4','5','6','7','8']
print(print_list(lst_int))
print(print_list(lst_str))
<<<
[8, 7, 6, 5, 4, 3, 2, 1]
['8', '7', '6', '5', '4', '3', '2', '1']
Alos,检查REINSTALLMODE Property是否有覆盖文件。