MSI安装程序失败而未删除以前的安装

时间:2008-09-02 20:44:44

标签: windows-installer versioning

我已经构建了一个我想部署的MSI,并经常更新。不幸的是,当您安装MSI,然后尝试安装相同MSI的较新版本时,它会失败,并显示“此产品的另一个版本已安装。此版本无法继续安装...”的消息。 MSI是使用Visual Studio 2008安装项目构建的。我已经尝试将“删除以前的版本”属性设置为true和false,以便只是让新版本覆盖旧版本,但没有任何工作。在以前的公司,我知道我对Wise和Advanced Installer构建的安装程序没有这个问题。我缺少一个设置吗?或者VS 2008安装项目不支持我想要的功能吗?

5 个答案:

答案 0 :(得分:9)

我已经使用VS 2005 Pro构建了许多正确执行此操作的MSI。

您确定部署项目的“版本”属性已增加吗?此属性独立于应用程序中程序集的版本,如果MSI的Version属性与您尝试覆盖的版本属性相同,则会显示此错误消息。

答案 1 :(得分:6)

增加项目的版本号。

在VS中,选择设置应用程序的节点,然后按F4查看属性。找到版本字段,然后递增它。

答案 2 :(得分:3)

您需要在每个版本之间更改ProductCode,如果不这样做,您将获得您所看到的行为。 ProductCode可在项目属性中看到。查看MSDN Online Help for ProductCode以便更好地理解。

答案 3 :(得分:1)

这有点复杂:

要在安装项目中自动删除已安装应用程序的先前版本,需要:

  1. 增加版本属性(例如从1.0.0升级到1.0.1 ...也改变第3个位置的工作)
    • 版本是安装程序项目的属性,用于标识安装的应用程序版本
  2. 更改 ProductCode 属性,以便安装程序知道它与执行两次的安装程序不同
    • ProductCode 是安装程序项目的属性,当版本属性更改时,Visual Studio会自动更改它
  3. 保留“UpgradeCode”属性的值。
    • UpgradeCode 也是安装程序项目的属性
    • 它需要在整个“升级线”中保持不变,因此安装程序知道要升级的内容
  4. 如果您还想从控制面板的软件列表中删除旧的应用程序版本,请将 RemovePreviousVersions 设置为true

答案 4 :(得分:0)

从XP到Win7时遇到同样的问题。要解决这个问题,我必须将DetectNewerInstalledVersion设置为False。另外,正如其他人所提到的,您需要包含安装项目的版本。

祝你好运。

相关问题