0

我有一个msi安装程序(VS2008安装项目)。我想要发生的事情是,安装人员首先要检测软件是否已安装在机器上。如果是,则卸载该软件,然后继续安装。msi安装程序卸载

有许多属性,如DetectNewerInstalledVerision,RemovePreviousVersions和ProductCode似乎暗示这是可能的。目前,我必须每次重新生成ProductCode,并在已安装的程序列表(控制面板 - >添加/删除程序)中获得一个附加条目。

有没有办法让我可以配置安装程序自动卸载任何以前的版本?

回答

0

你是对的 - 这是可能的。

基本上,你需要改变两个属性。首先,您需要设置RemovePreviousVersions,以便实现您想要的结果。然后,为了识别旧版本,还需要为每个部署设置版本号。每次发布版本时,手动更新此号码(更高的号码),或者使用部署自动更新。当安装程序运行时,它将检测以前安装的任何版本是否为较低的编号并自动删除它们。

+0

只是要说清楚:版本号需要在安装项目中增加,不一定要安装项目。然后Visual Studio会要求分配一个新的* ProductCode *,这需要用yes来确认。另外请记住,不要更改* UpgradeCode *。 – 2010-06-30 15:52:37

+0

我们在谈论哪个版本号? AssemblyInfo类有两个,一个用于设置项目,另一个用于项目 - >属性窗口? – 2010-06-30 20:06:45

+0

@ pm_2 - @ 0xA3作了正确的说明,因为它需要在安装项目中增加。 – JasCav 2010-06-30 20:19:17