我正在使用InstallShield生成的安装程序来解决问题。该问题出现在卸载过程中。 setup.exe文件需要管理员权限。当我尝试使用setup.exe文件卸载应用程序时,一切都按预期工作。但是当我尝试从Windows程序和功能中卸载应用程序时,则卸载正在执行.msi文件。在这种情况下,结果是卸载过程无法关闭打开的应用程序和错误"安装程序无法自动关闭所有请求的应用程序(...)"正在出现。我已经检查了不同操作系统上的问题。似乎在Windows 7和10上出现了问题,但在Windows Server 2012R2上它的工作方式与预期相似(卸载能够关闭所需的应用程序)。 知道怎么解决这个问题吗?我会很感激提示。
答案 0 :(得分:0)
与此同时,我意外地发现,在更改UAC级别并重新启动计算机后,卸载能够关闭应用程序(之前我检查过它而没有重新启动,并且行为没有差异,所以我认为这不是问题)。非常感谢您的提示@PhilDW。我再次更改了UAC设置,我尝试创建日志,并且与问题相关的日志如下所示:
MSI(B4:D0)[15:44:09:691]:RESTART MANAGER:检测到ID为15584,友好名称为“XYZ System Monitor”且类型为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:ListBox 3:-2147287038 行动15:44:31:关闭应用程序。关闭应用程序 MSI(s4)(B4:D0)[15:44:32:071]:RESTART MANAGER:成功关闭服务会话中保存正在使用的文件的所有应用程序。 MSI(c)(4C:C8)[15:44:32:071]:RESTART MANAGER:成功关闭所有正在使用文件的应用程序。 MSI(B4:D0)[15:44:32:573]:注意:1:1611 安装程序无法自动关闭所有请求的应用程序。在继续安装之前,请确保关闭正在使用的文件的应用程序。
我不明白为什么日志声称所有应用程序都被成功排除,然后记录相反的声明。
答案 1 :(得分:0)
最简单的方法是在安装程序到达该点之前终止该进程。您需要将此更早地放在InstallExucute序列中,以便在静默模式下运行。
例如,在vbscript中
Dim oShell:设置oShell = CreateObject(" WScript.Shell")
oShell.Run" taskkill / im exeprocessname.exe",,True