Visual Studio 2010安装项目。
在这种情况下,如何在安装新版本之前删除所有以前的版本:
我可以限制新版本安装仅安装ME或FORALLUSERS。
但我需要新版本在安装前必须删除任何已安装的(ME / FORALLUSERS)。
MSI需要纠正什么?
答案 0 :(得分:2)
Windows Installer只能同时删除以前的版本。每台计算机删除以前的每台计算机和每用户删除以前的每用户(相同的用户配置文件)。混合搭配是不可能的。
注意如果在每用户安装上下文中安装了应用程序,则还必须执行对应用程序的任何重大升级 使用每用户上下文。如果安装了应用程序 每台机器安装上下文,对应用程序的任何重大升级 还必须使用每台机器上下文执行。 Windows 安装程序不会在安装上下文中安装主要升级。
答案 1 :(得分:1)
考虑到所有版本的产品安装都是由UpgradeCode识别的,作为一种解决方法,您可以尝试创建一个custom action,其行为如下:
启动这样的卸载命令行:
msiexec.exe / x ProductCode
其中 ProductCode 是“MsiEnumRelatedProducts”函数返回的ProductCode。
我没有测试过这个实现,但是相应的Windows Installer文档应该可以运行。