微星:如何删除所有以前的版本?

时间:2014-11-24 16:02:33

标签: windows-installer removeall

Visual Studio 2010安装项目。

在这种情况下,如何在安装新版本之前删除所有以前的版本:

  1. 用户可以安装旧版本“仅限我”或“适用于所有用户”
  2. 新版本也可以安装:'仅限我'或'适合所有用户' 现在它并行安装。
  3. 我可以限制新版本安装仅安装ME或FORALLUSERS。

    但我需要新版本在安装前必须删除任何已安装的(ME / FORALLUSERS)。

    MSI需要纠正什么?

2 个答案:

答案 0 :(得分:2)

Windows Installer只能同时删除以前的版本。每台计算机删除以前的每台计算机和每用户删除以前的每用户(相同的用户配置文件)。混合搭配是不可能的。

Major Upgrades

  

注意如果在每用户安装上下文中安装了应用程序,则还必须执行对应用程序的任何重大升级   使用每用户上下文。如果安装了应用程序   每台机器安装上下文,对应用程序的任何重大升级   还必须使用每台机器上下文执行。 Windows   安装程序不会在安装上下文中安装主要升级。

答案 1 :(得分:1)

考虑到所有版本的产品安装都是由UpgradeCode识别的,作为一种解决方法,您可以尝试创建一个custom action,其行为如下:

  1. 获取具有UpgradeCode的所有已安装产品。您可以使用MsiEnumRelatedProducts function
  2. 启动这样的卸载命令行:

    msiexec.exe / x ProductCode

  3. 其中 ProductCode 是“MsiEnumRelatedProducts”函数返回的ProductCode。

    我没有测试过这个实现,但是相应的Windows Installer文档应该可以运行。