1

使用 Windows 安装程序 4.0 和重新启动管理器,是否可以安全地假设“重新启动管理器”将负责关闭应用程序,因此不需要任何类型的自定义操作来处理保存文件的进程的关闭,这意味着要更新?

是否存在“重新启动管理器”可能无法关闭应用程序的例外情况?当然,我了解当强制执行 DisableAutomaticApplicationShutdown 等策略时,Restart Manager 会被禁用。

要关闭的进程是否必须满足某些条件才能被 Restart Manager 关闭?我正在默默地运行我的 msi 包。

如果 msi 包请求重新启动,即使启用了“重新启动管理器”,我该如何推断?

4

1 回答 1

3

Restart Manager 主要是一种更好的检测方案(比以前),用于检测安装操作期间正在使用的文件。例如,旧方案仅检测到具有顶级 Window 的正在运行的应用程序(不包括托盘应用程序)。唯一会自动关闭并重新启动的应用程序是那些已注册执行此操作的应用程序。基本上这意味着您的应用程序调用 RegisterApplicationRestart() 告诉它您希望重新启动的命令行。该应用程序监视 WM_QUERYENDSESSION 消息,告诉它它即将关闭,并为随后的重启写入恢复信息。

这里的例子:

http://www.advancedinstaller.com/user-guide/qa-vista-restart-manager.html

所以你的一些问题不适用,但显然重点是防止重新启动,无论它是否是静默安装。如果静默安装需要重新启动,它就会这样做,因为静默真的意味着静默,没有人可以询问,并且直到重新启动后安装才完成。

当应用程序不执行这项工作时,人们通常会求助于诸如 WiX Util CloseApplication 调用之类的方法来关闭它们。

请注意,标记为安装时停止(或卸载,视情况而定)的服务不会导致文件使用中的情况。文件使用检测机制忽略服务控制表中标记为停止的服务正在使用的文件。所以服务通常很好,但如果服务产生其他进程,那么它们可能会导致文件使用中的情况。

于 2016-04-21T17:04:51.290 回答