我已经构建了一个我想部署的MSI,并经常更新。不幸的是,当您安装MSI,然后尝试安装相同MSI的较新版本时,它会失败,并显示“此产品的另一个版本已安装。此版本无法继续安装...”的消息。 MSI是使用Visual Studio 2008安装项目构建的。我已经尝试将“删除以前的版本”属性设置为true和false,以便只是让新版本覆盖旧版本,但没有任何工作。在以前的公司,我知道我对Wise和Advanced Installer构建的安装程序没有这个问题。我缺少一个设置吗?或者VS 2008安装项目不支持我想要的功能吗?
答案 0 :(得分:9)
我已经使用VS 2005 Pro构建了许多正确执行此操作的MSI。
您确定部署项目的“版本”属性已增加吗?此属性独立于应用程序中程序集的版本,如果MSI的Version属性与您尝试覆盖的版本属性相同,则会显示此错误消息。
答案 1 :(得分:6)
增加项目的版本号。
在VS中,选择设置应用程序的节点,然后按F4查看属性。找到版本字段,然后递增它。
答案 2 :(得分:3)
您需要在每个版本之间更改ProductCode,如果不这样做,您将获得您所看到的行为。 ProductCode可在项目属性中看到。查看MSDN Online Help for ProductCode以便更好地理解。
答案 3 :(得分:1)
这有点复杂:
要在安装项目中自动删除已安装应用程序的先前版本,需要:
答案 4 :(得分:0)
从XP到Win7时遇到同样的问题。要解决这个问题,我必须将DetectNewerInstalledVersion设置为False。另外,正如其他人所提到的,您需要包含安装项目的版本。
祝你好运。