首页 文章

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

提问于
浏览
9

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

5 回答

  • 3

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

    您确定 deployment project 的'Version'属性已递增吗?此属性独立于应用程序中程序集的版本,如果MSI的Version属性与您尝试覆盖的版本属性相同,则会显示此错误消息 .

  • 6

    增加项目的版本号 .

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

  • 0

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

  • 9

    这有点复杂:

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

    • 增加 Version 属性(例如从1.0.0增加到1.0.1 ......也改变第3个位置的工作)

    • Version 是安装程序项目的属性,用于标识安装了哪个版本的应用程序

    • 更改 ProductCode 属性,因此安装程序知道它与执行两次的安装程序不同

    • ProductCode 是安装程序项目的属性,当 Version 属性更改时,Visual Studio提供自动更改它

    • 保留"UpgradeCode"属性的值 .

    • UpgradeCode 也是安装程序项目的属性

    • 它需要在整个"upgrade line"中保持不变,因此安装程序知道要升级的内容

    • 如果您还想从控制面板的软件列表中删除旧的应用程序版本,请将 RemovePreviousVersions 设置为true

  • 1

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

    祝好运 .

相关问题