更改升级代码后如何卸载旧版本?

时间:2020-08-13 07:35:49

标签: windows-installer installshield

我有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 );

但是无论如何它每次都不起作用,我认为这与计时有关。 你觉得呢?

1 个答案:

答案 0 :(得分:1)

升级表 :只要这是一个MSI(自从您提到升级代码以来就应该如此),通常就可以卸载任何 通过创作the upgrade table 您正在安装的MSI。

实际上,这是您应该这样做的方法,并且不要依赖任何自定义操作构造,因为它们容易引起问题。这是MSI内置的"major upgrade" feature,旨在为您自己的产品提供升级

请在此处查看技术说明:

在Installshield中,您应该只在the Upgrades viewInstallshield help file)中添加较旧的升级代码,但是目前我没有Installshield可以尝试。 WiX构造的链接答案应显示总体过程。