Windows installer MSI安装程序失败,但未删除以前的安装

Windows installer MSI安装程序失败,但未删除以前的安装,windows-installer,versioning,Windows Installer,Versioning,我已经建立了一个MSI,我想部署,并经常更新。不幸的是,当您安装MSI,然后尝试安装同一MSI的较新版本时,会出现类似“已安装此产品的另一版本。无法继续安装此版本…”的消息。MSI是使用VisualStudio2008安装项目构建的。我曾尝试将“删除以前的版本”属性设置为true和false,试图让较新的版本覆盖较旧的安装,但没有任何效果。在以前的一家公司,我知道我没有这个问题,安装程序由Wise和Advanced Installer构建。有没有我错过的场景?还是VS 2008安装项目不支持我所

我已经建立了一个MSI,我想部署,并经常更新。不幸的是,当您安装MSI,然后尝试安装同一MSI的较新版本时,会出现类似“已安装此产品的另一版本。无法继续安装此版本…”的消息。MSI是使用VisualStudio2008安装项目构建的。我曾尝试将“删除以前的版本”属性设置为true和false,试图让较新的版本覆盖较旧的安装,但没有任何效果。在以前的一家公司,我知道我没有这个问题,安装程序由Wise和Advanced Installer构建。有没有我错过的场景?还是VS 2008安装项目不支持我所需的功能?

我已经用VS 2005 Pro构建了许多MSI,这些MSI都能正确实现这一点


您确定部署项目的'Version'属性已递增吗?此属性独立于应用程序中程序集的版本,这是一条错误消息,您将看到MSI的版本属性是否与您试图覆盖的版本属性相同。

增加项目上的版本号


在VS中,选择安装应用程序的节点并点击F4以查看属性。找到“版本”字段,并将其递增。

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

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


祝你好运。

这有点复杂:

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

  • 增加版本属性(例如从1.0.0增加到1.0.1…第三位置也会改变)
    • Version是安装程序项目的属性,用于标识安装的应用程序版本
  • 更改ProductCode属性,以便安装程序知道它不是执行两次的同一个安装程序
    • ProductCode是安装程序项目的属性,Visual Studio提供在更改版本属性时自动更改它
  • 保留“UpgradeCode”属性的值。
    • 升级代码也是安装程序项目的属性
    • 它需要在整个“升级系列”中保持不变,以便安装程序知道升级什么
  • 如果您还想从控制面板的软件列表中删除旧的应用程序版本,请将RemovePreviousVersions设置为true

  • 仅更改主要升级的产品代码,小的频繁更新应保留相同的产品代码,只需增加版本。在windows installer看来,更改产品代码实际上是一个新的应用程序。如何获取部署项目的“版本”属性?具体步骤是什么?除了以前的版本外,我不使用.msi卸载所有版本。我有vb脚本在成功构建时更改版本和产品代码。并将RemovePrevious Version属性设置为true。有什么想法吗?如何克服。