我有2个程序(A和B)具有相同的升级代码-当一个正在安装时,另一个已卸载。 现在,我必须将两个程序都安装在同一台计算机上,以实现从一个程序(A)更改升级代码的目的。 我的问题是,如果我已经在PC上安装了旧版本的A,则MSI无法识别新的升级代码并进行新安装。如何卸载旧版本?有没有办法从installShield做到这一点? 我试图制作一个自定义脚本:
LAAW_SHELLEXECUTEVERB = "runas";
MessageBox("result incercam uninstall",INFORMATION);
command_e = "wmic product where \"description='IP Office Admin Lite'\" uninstall";
LaunchApplication( "cmd.exe",
"/C " + command_e,
"",
SW_MINIMIZE, 0, LAAW_OPTION_WAIT );
但是无论如何它每次都不起作用,我认为这与计时有关。 你觉得呢?
答案 0 :(得分:1)
升级表 :只要这是一个MSI(自从您提到升级代码以来就应该如此),通常就可以卸载任何 通过创作the upgrade table 您正在安装的MSI。
实际上,这是您应该这样做的方法,并且不要依赖任何自定义操作构造,因为它们容易引起问题。这是MSI内置的"major upgrade" feature,旨在为您自己的产品提供升级
请在此处查看技术说明:
在Installshield中,您应该只在the Upgrades view(Installshield help file
)中添加较旧的升级代码,但是目前我没有Installshield可以尝试。 WiX构造的链接答案应显示总体过程。