1

我正在使用 InstallShield 2012 Spring Express。我终于发现,在我的应用程序安装过程中,如果我将其“In-Script Execution”属性设置为“Deferred Execution In System”,我可以使用提升的进程 EXE(应用程序清单设置为“requireAdministrator”)运行自定义操作语境。”

那很好。

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

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

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

那么,如何在卸载过程中让提升的进程 EXE 正确运行?InstallShield 是否无法正确处理此问题?

谢谢,JP

4

1 回答 1

0

您可以使用 Windows Installer XML 创作合并模块,以正确安排和排序您的自定义操作。InstallShield express 然后可以使用该模块。看:

使用 Windows Installer XML 增强 InstallShield - 证书

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

于 2013-03-18T17:43:55.533 回答