Installshield无法卸载以前的版本

时间:2017-12-13 19:42:24

标签: installshield installscript-msi installshield-2013

我已经搜索了这个主题并发现了许多帖子,但没有一个帖子描述了我所拥有的确切问题。我们的产品(我从另一个开发人员那里继承而来)有一个InstallScript方法(见下文),虽然它似乎工作了很长一段时间似乎没有从任何地方调用,所以我添加了一个自定义操作来调用它将它放在用户界面和执行序列中的ISSetupFilesExtract步骤之后,当我运行它时它要么不起作用,要么给我一个错误。所以这是脚本:

export prototype MainApplication_Installing();
function MainApplication_Installing()
begin
Disable(CANCELBUTTON);

SetStatusWindow(-1,"Uninstalling previous versions...");
//Uninstall 3.0.5
LaunchApp("MsiExec.exe","/X{ABA98465-AE8B-49BB-A445-46744EF236C0} /qn");    
//Uninstall 3.1.1
LaunchApp("MsiExec.exe","/X{954ADD40-DFEF-40DD-896A-FF29E5E43FB8} /qn");    

其中/ X是每个先前版本的产品代码,但是就像我说的那样没有用,所以在尝试调试脚本失败之后我尝试了另一条路线创建了一个主要升级,我指定了升级每个先前版本的代码:准备升级方案设置 - >升级Windows Installer设置 - >删除3.05 - 3.1.1,但这也不起作用。当我安装产品时,它会将其与旧版本并行安装(我在Control-Panel->卸载或更改程序中都看到了。

enter image description here

那么我应该采用哪种方式,为什么这些都不起作用?

提前致谢!

1 个答案:

答案 0 :(得分:0)

在InstallExecuteSequence中安装/卸载后,您无法运行其他安装/卸载过程。这是Windows安装程序的限制,一次只能运行一个MSI进程。