首页 > 解决方案 > MSI 多次安装相同版本的应用程序?

问题描述

我有一个 MSI 安装程序,其中有以下配置:

<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." AllowSameVersionUpgrades="yes"/>

假设我已经安装了 1.0.0.0 版本。

下次,如果我安装 1.0.0.1 版本。它按预期升级了相同的应用程序。

下次,如果我尝试安装 1.0.0.0 版本。安装程序不允许我选择功能(如预期的那样),但允许在不选择任何功能但顶部复选框的情况下进行安装。我希望安装程序在任何情况下都不允许在版本关闭的情况下进行处理。

另一个问题,如果安装了 1.0.0.0 版本并且我打开相同的安装程序,它会按预期显示修改、修复和删除屏幕。但是,如果我构建 VS 项目并安装已安装的相同版本。它允许我安装并在程序和功能中,它显示两个具有相同版本的应用程序。我不想要这个。我需要使用任何标志或祝贺来执行此操作吗?

标签: wixwindows-installer

解决方案


ProductVersion : 只有前三位数字ProductVersion对重大升级有效。确保您至少提高了第三位数字,并且主要升级应该可以工作并删除以前的版本。我强烈建议您不要试图解决这个问题,而只需接受 3 位数版本规则限制。至于为什么,这是 Windows Installer 的限制。最差的之一。

Automagic ProductCode:您必须已将产品代码设置为自动生成。这意味着每次重建都会产生一个新的产品代码,并且本质上会设置一次重大升级。此主要升级失败,因为您错误的 4 位版本号仅在第 4 位上增加,并且由于主要升级检测和运行失败,您的应用程序结果的两个并排安装版本。


推荐阅读