使用WiX和UpgradeCode阻止Windows安装程序(MSI)降级

时间:2014-09-26 00:18:40

标签: wix windows-installer

我发布了使用WiX 3.5构建的Windows安装程序(V1)。 V1具有UpgradeCode,但没有Upgrade或MajorUpgrade元素。 V2尚未发布。

我可以将MajorUpgrade元素添加到V2和V3安装程序,并且可以检测并阻止从V3降级到V2。我理解在安装V2期间我也可以检测到V1。

问题:
目前我可以在同一目录中安装V1 over V2,这两个版本都出现在“添加/删除程序”中。 V1文件覆盖V2文件。卸载V1不会从添加/删除程序中删除V2,但会删除V2文件,因为它们具有与V1相同的路径名。用户留下了无法使用的V2安装。

安装V2后是否可以阻止安装?

V1是否可以正确卸载V2?

  • V2自动成功卸载V1
  • V2升级安装后只有一个ARP条目,V2的版本号为
  • V1和V2具有相同的UpgradeCode
  • V2的版本号在前三个字段中大于V1
  • V1和V2具有匹配的InstallScope

1 个答案:

答案 0 :(得分:1)

防止降级需要升级检测逻辑才能正常工作,看起来并非如此,因为您获得了两个ARP条目。 V1和V2需要相同的UpgradeCode,V2必须在前三个字段中具有大于V1的版本,并且InstallScope必须匹配。如果V2是每个用户(或每台机器)的安装程序,那么如果不是相同的范围,V1也将安装而不是升级。

相关问题