1

我在使用 InstallShield 生成的安装程序时遇到问题。该问题在卸载过程中出现。setup.exe 文件需要管理员权限。当我尝试使用 setup.exe 文件卸载应用程序时,一切都按预期工作。但是当我尝试从 Windows 程序和功能中卸载应用程序时,卸载正在执行 .msi 文件。在这种情况下,结果是卸载过程无法关闭打开的应用程序,并且出现错误“安装程序无法自动关闭所有请求的应用程序 (...)”。我已经检查了不同操作系统上的问题。似乎在 Windows 7 和 10 上出现了问题,但在 Windows Server 2012R2 上它按预期工作(卸载能够关闭所需的应用程序)。知道如何解决这个问题吗?我会很感激提示。

4

2 回答 2

0

最简单的方法是在安装程序到达该点之前终止该进程。您需要将它放在 InstallExucute 序列的前面,以便在静默模式下运行。

例如,在 vbscript

暗淡 oShell:设置 oShell = CreateObject("WScript.Shell")

oShell.Run "taskkill /im exeprocessname.exe", , True

于 2018-02-23T00:54:10.560 回答
0

与此同时,我意外地发现,在更改 UAC 级别并重新启动计算机后,卸载能够关闭应用程序(之前我在没有重新启动的情况下检查了它,并且行为没有差异,所以我认为这不是问题)。非常感谢您的提示@PhilDW。我再次更改了 UAC 设置,并尝试创建日志,与问题相关的日志如下所示:

MSI (s) (B4:D0) [15:44:09:691]: RESTART MANAGER: 检测到 ID 为 15584、友好名称“XYZ 系统监视器”、类型为 RmUnknownApp 且状态为 1 的应用程序持有正在使用的文件 [s] . MSI (c) (4C:C8) [15:44:09:697]: RESTART MANAGER: 会话打开。MSI (c) (4C:C8) [15:44:09:707]: RESTART MANAGER: 检测到 ID 为 15584、友好名称“XYZ.Monitor.exe”、类型为 RmCritical 且状态为 1 的应用程序包含文件 [s]正在使用。MSI (c) (4C:C8) [15:44:09:707]:注意:1:2262 2:列表框 3:-2147287038 操作 15:44:31:关闭应用程序。关闭应用程序 MSI (s) (B4:D0) [15:44:32:071]: RESTART MANAGER: 成功关闭服务会话中所有保存正在使用文件的应用程序。MSI (c) (4C:C8) [15:44:32:071]: RESTART MANAGER: 成功关闭所有持有正在使用的文件的应用程序。MSI (s) (B4:D0) [15:44:32: 573]:注:1:1611 安装程序无法自动关闭所有请求的应用程序。请确保在继续安装之前关闭保存正在使用的文件的应用程序。

我不明白为什么日志声称所有应用程序都已成功关闭,然后日志声称相反。

于 2018-02-16T08:06:49.320 回答