使用 Windows 安装程序重新启动管理器行为

Restart Manager behavior with Windows installer

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

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

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

即使启用了“重启管理器”,如果 msi 软件包请求重启,我会推断出什么?

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

此处示例:

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

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

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

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