C# 安装包有问题

C# 安装包有问题,c#,windows-installer,C#,Windows Installer,当我第二次使用msi文件安装应用程序时,我发现了两种不同的行为: 1) 有时,它会显示一个警告窗口,通知我您的电脑中安装了以前的版本。如果要删除它,请转到“控制面板” 2) 它显示一个向导,询问我是否要修复或删除应用程序 事实上,我不想要第一种行为。我想让他要求我要么修复以前的版本,要么删除它。怎么做 我找到了解决办法。。我应该将DetectNewInstalledVersion属性设置为false,以便它执行第二个行为 如果我错了,请纠正我如果您希望安装程序自动卸载旧版本的应用程序,您可以执行

当我第二次使用msi文件安装应用程序时,我发现了两种不同的行为:

1) 有时,它会显示一个警告窗口,通知我您的电脑中安装了以前的版本。如果要删除它,请转到“控制面板”

2) 它显示一个向导,询问我是否要修复或删除应用程序


事实上,我不想要第一种行为。我想让他要求我要么修复以前的版本,要么删除它。怎么做

我找到了解决办法。。我应该将DetectNewInstalledVersion属性设置为false,以便它执行第二个行为


如果我错了,请纠正我如果您希望安装程序自动卸载旧版本的应用程序,您可以执行以下操作:

  • 在安装程序中增加应用程序的版本号
  • 完成此操作后,VS将弹出一个对话框,询问您是否需要其他产品Id。(回答是/确定)
  • 确保删除的先前版本为真
  • 下次安装时(假设存在旧版本),安装程序将自动卸载旧版本并安装新版本


    这种魔力是由最后一个guid——组码造成的。产品的所有版本的guid必须始终相同。因此,逻辑是,如果版本号已更改,产品代码已更改,但组码相同,则会发生自动卸载。

    也有相同的问题,将DetectNewInstalledVersion设置为false解决了此问题。我相信这个问题是在从XP切换到Win7时出现的。

    您可能还需要查看RemovePreviousVersion属性,以确保它符合您的要求。