【问题标题】:InstallShield 2012 Spring Express: How Can I Run Custom Action As Administrator On Uninstall?InstallShield 2012 Spring Express:如何在卸载时以管理员身份运行自定义操作?
【发布时间】:2013-03-05 00:34:19
【问题描述】:

我正在使用 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

【问题讨论】:

    标签: installation installshield installscript installshield-2012


    【解决方案1】:

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

    Augmenting InstallShield using Windows Installer XML - Certificates

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

    【讨论】:

      猜你喜欢
      • 2014-12-29
      • 2015-04-26
      • 1970-01-01
      • 1970-01-01
      • 2011-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多