如何在发布新版本时重新安装MSI?

时间:2010-12-18 08:41:10

标签: installer windows-installer

我已经在我的电脑上安装了设置。然后我在代码中做了一些更改,并用新的MSI构建了MSI。现在,当我尝试安装应用程序时,我收到一条错误消息“已经安装了该产品的另一个版本,请删除旧版本。”

我想重新安装它,而不是显示此警告。这可能吗?

2 个答案:

答案 0 :(得分:5)

卸载旧版本,然后重新安装新版本。

否则,您需要创建一个能够更新您的应用程序的安装程序。原因是标识要安装到Windows的应用程序的ProductCode GUID已被前一个应用程序实例使用。

您可以通过将RemovePreviousVersions属性设置为True来指定安装程序删除它找到的任何以前版本的应用程序。您还需要增加ProductCodePackageCode以反映这是应用程序的升级版本。如果你走这条路线,那么想要更改ProductCode,因为Windows会看到将要安装的内容作为一个完全不同的应用程序。您没有提到您用于创建安装程序的内容,因此很难提供更多详细信息。在Visual Studio中,您可以在设计器中设置这些属性:

Visual Studio Deployment Project Properties

或者,如果您使用的是WiX,则应该会看到this question的答案。

答案 1 :(得分:2)

您收到该消息是因为您的PackageCode已更改但您的ProductCode尚未更改。要安装较新版本,您需要运行msiexec / i foo.msi REINSTALL = ALL REINSTALLMODE = vomus。像InstallShield这样的工具可以生成一个setup.exe来检测这种状态并为你处理它。

但我想解决一个更广泛的问题。您需要彻底了解Windows Installer服务策略。您需要选择要支持的升级和修补程序类型,并在投入生产之前对其进行测试。此外,您可以通过安装在自己的机器上来玩火,而无需降低风险所需的知识。这就是虚拟机快照的用途。