InstallShield 2012 Spring Express:如何在卸载时以管理员身份运行自定义操作?

时间:2013-03-16 07:49:55

标签: installer install installshield installscript installshield-2012

我正在使用InstallShield 2012 Spring Express。我终于想通了,在我的应用程序的安装过程中,如果我将其“In-Script Execution”属性设置为“在系统中延迟执行”,我可以使用提升的进程EXE(应用程序清单设置为“requireAdministrator”)运行自定义操作上下文中,“

那很好。

但是现在我必须能够在卸载过程中做同样的事情。到目前为止,即使是在付费版本的InstallShield 2012 Spring Express上,我也无法让它发挥作用。

首先,对于“卸载期间的自定义操作”部分,只有两个条目,“在系统更改之前”和“在系统更改之后”。

我没有尝试将我的自定义操作添加到“After System Changes”之后,因为我需要运行的EXE是我的包的一部分(因此当时将被删除。)所以我将它添加到“在系统更改之前。“现在出于某种原因,当我将其添加到“系统更改之前”时,没有“脚本执行”选项。并且由于我没有此选项,当我的卸载尝试运行提升的进程EXE时,它失败并显示错误1721 ...这与我在安装期间获得的错误完全相同,直到我更改了“In” -Script Execution“选项”在系统上下文中延迟执行。“

那么,如何在卸载过程中让升级的进程EXE正常运行? InstallShield无法正确处理吗?

谢谢, JP

1 个答案:

答案 0 :(得分:0)

您可以使用Windows Installer XML创建合并模块,以正确计划和排序自定义操作。然后,InstallShield express可以使用该模块。参见:

Augmenting InstallShield using Windows Installer XML - Certificates

如果你不习惯混合工具(这就像在VB.NET中编写DLL并在用C#编写的EXE中引用它),那么你必须升级到InstallShield Professional。