VS 2008安装程序已更改,在控制面板中安装了两个

时间:2012-10-29 17:58:48

标签: visual-studio installation

我的Visual Studio 2008安装项目已更改,因此MFC和VC的合并模块已替换在安装文件夹中手动安装的DLL。我没关系合并模块,但是有一个问题。在之前的设置中,用户可以选择“Everyone”和“Just me”。在新设置中,此选择无效,并且由于合并模块必须为每个人安装,因此安装始终适合所有人。因此,如果以前的安装“仅适合我”,那么新安装不会删除先前安装的DLL,而在控制面板中有两个具有相同名称的安装。

在新版本的安装项目中,更改了ProductCode,而不是UpgradeCode,RemovePreviousVersion设置为true,版本高于以前版本。

如果我从安装程序中排除合并模块,并且“仅为我”安装新版本,那么一切都很好。旧文件被删除,控制面板中只有一个安装。但我宁愿不通过单独安装可再发行软件包来增加用户负担。

我如何在Visual Studio 2008安装程序中同时具有合并模块,并指示安装程序删除以前的版本,即使先前版本“仅适合我”,而新版本适用于“所有人”?

更好的问题是,您将采取哪些措施来解决此问题?

1 个答案:

答案 0 :(得分:0)

Windows Installer(MSI文件的处理程序)在安装另一个产品时不会卸载一个产品。此外,当按用户(“只是我”)和每台机器(“每个人”)安装时,相同的安装被视为两种不同的产品。因此,如果要为每台计算机安装new,则无法从.msi中卸载旧的每用户安装。

选项按优先顺序排列:

  1. 进行自举安装(.exe),寻找并卸载所有需要卸载的东西。 Bootstrapper也是preferred way来安装先决条件,而不是使用合并模块。
  2. 从.msi您可以检测到出现问题,然后停止安装。我done this,但也可以使用第一个选项。
  3. 忽略问题,说它是设计的,什么也不做。这完全掌握在用户手中。