如何在wix安装程序中禁用降级并启用升级?

时间:2016-09-06 08:27:33

标签: wix windows-installer installer

我想删除旧版本并安装最新版本设置。如果安装旧版本意味着需要限制降级。

如果使用以下代码,我已启用升级并删除旧版本。

<Property Id="PREVIOUSVERSIONSINSTALLED" Secure="yes" />
<Upgrade Id="{Guid}">
  <UpgradeVersion Minimum="1.1.0.1" Maximum="99.0.0.0"
     Property="PREVIOUSVERSIONSINSTALLED"
     IncludeMinimum="yes" IncludeMaximum="no" />
</Upgrade>

<RemoveExistingProducts Before="InstallInitialize" />

但我不知道如何禁用降级选项。我正在获得解决方案来限制3位数(x.x.x)版本的降级。但是可以获得限制4位数(x.x.x.x)版本的解决方案。

1 个答案:

答案 0 :(得分:1)

对于基于ProductVersion的四个字段的主要升级逻辑,Windows Installer(以及因此在WiX生成的MSI主要升级中)不支持。正如文档所说:

https://msdn.microsoft.com/en-us/library/windows/desktop/aa370859(v=vs.85).aspx

&#34;请注意,Windows Installer仅使用产品版本的前三个字段。如果在产品版本中包含第四个字段,则安装程序将忽略第四个字段。&#34;

问题是主要升级需要更改前3个字段,因此使用4个字段意味着您无法使用任何类型的主要升级。您可能能够创建一个查看已安装版本和传入升级版本的自定义引导程序,它会检测到降级的尝试,但您需要卸载旧版本,然后单独安装升级,并且会有恢复,如果出现故障,没有单一事务可以恢复系统。规则说在主要升级中使用了三个字段。