WiX:运行MSI文件而不参考版本号

时间:2017-05-19 20:13:12

标签: wix windows-installer version

我有一个WiX Burn项目,我希望每次都能运行一个MSI文件,而不需要参考版本号。

更具体地说,假设我有 MSI A MSI B MSI C

当我推出项目更新时(我使用主要更新,因为这似乎比复杂的补丁和那种性质的东西更容易),我想:

  • MSI A 安装 if-and-only-if 其版本号大于目标计算机上的版本号。
  • MSI B 运行 if-and-only-if 其版本号大于目标计算机上的版本号。

    (到目前为止,这很好,因为这正是Windows Installer的工作方式。)

  • 最后, MSI C 每次运行。单。时间。无论如何。

我可以尝试的事情:

我可以确保每个版本的版本号都变得越来越大,但如果我被公共汽车撞到怎么办?此安装程序可能会持续一段时间。

我可以将其中一个可执行文件的版本号绑定到MSI C的版本号,但如果在该特定部署中未更新可执行文件该怎么办?没有安装可执行文件,保证每次推出都会更新。

是否有类似的方法将版本号转换为int然后运行自定义操作,增加int,然后将其转换回版本号,或类似的东西?

或者 - 更好 - 某种转换?

1 个答案:

答案 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是否有覆盖文件。