系统重新启动

Windows Installer 可以确定何时需要重新启动系统,并在安装结束时自动提示用户重新启动。 例如,如果安装程序需要替换安装过程中使用的任何文件,该安装程序将自动提示重新启动。

使用 Windows Installer 4.0 或更高版本进行安装和维护的应用程序会自动使用重新启动管理器来减少系统重新启动。 Windows Installer 4.0 或更高版本的属性和策略使包作者和管理员能够控制 Windows Installer 与重新启动管理器的交互。 有关详细信息,请参阅将 Windows Installer 与重新启动管理器配合使用

安装包作者可以通过在序列表中使用标准操作和通过设置属性来计划和禁止重新启动。 以下操作和属性用于处理系统重新启动。

操作、对话框或属性 简要描述
ForceReboot 操作 在安装过程中提示用户重新启动。
ScheduleReboot 操作 在安装结束时提示用户重新启动。
REBOOT 属性 强制执行或禁止关于系统重新启动的某些自动提示。
REBOOTPROMPT 属性 禁止向用户显示重新启动提示。 任何所需的重新启动都会自动发生。
AFTERREBOOT 属性 通常用于对 ForceReboot 操作施加的条件。
InstallValidate 操作 必要时显示 FilesInUse 对话框,让用户有机会关闭进程并避免某些系统重新启动。
FilesInUse 对话框 让用户有机会关闭进程以避免某些系统重新启动。
MsiRMFilesInUse 对话框 使用户可以选择使用重新启动管理器关闭和重新启动应用程序。 从 Windows Installer 4.0 版开始提供。
ReplacedInUseFiles 属性 设置安装程序是否通过正在使用的文件进行安装。 自定义操作使用此属性来检测是否需要重新启动。
MSIRESTARTMANAGERCONTROL 用于禁用 Windows Installer 与重新启动管理器的交互的属性。 从 Windows Installer 4.0 版开始提供。
MSIDISABLERMRESTART 指定重新启动管理器如何关闭和重新启动应用程序。 从 Windows Installer 4.0 版开始提供。
MSIRMSHUTDOWN 指定重新启动管理器如何关闭和重新启动应用程序。 从 Windows Installer 4.0 版开始提供。
MsiSystemRebootPending 如果操作系统的重新启动挂起,安装程序将设置此属性。 从 Windows Installer 4.0 版开始提供。
DisableAutomaticApplicationShutdown 用于禁用 Windows Installer 与重新启动管理器的交互的策略。 从 Windows Installer 4.0 版开始提供。

 

ERROR_INSTALL_SUSPEND 表示安装未完成或回滚。 安装必须在完成之前恢复。 在安装恢复之前,可能需要重新启动系统。

运行 ForceReboot 操作时,Windows Installer 会返回错误代码 ERROR_INSTALL_SUSPEND。 如果在运行应用程序之前需要重新启动,它会返回 ERROR_SUCCESS_REBOOT_REQUIRED;如果安装程序实际已经开始重新启动,则会返回 ERROR_SUCCESS_REBOOT_INITIATED。 请注意,由于重新启动是异步的,因此重新启动实际上可能在返回错误代码之前发生。 有关详细信息,请参阅错误代码

自定义操作可以通过调用 MsiSetMode 在安装结束时强制执行重新启动提示。 自定义操作还可以通过调用 MsiGetMode 来检查挂起的重新启动提示。

FilesInUse 对话框

安装程序可以确定何时需要重新启动系统,并通过重新启动请求提示用户。 通常情况下,需要重新启动系统,因为安装程序会尝试安装当前正在使用的文件。 如果 InstallValidate 操作检测到正在使用的文件的安装,它将显示 FilesInUse 对话框

如果希望安装程序显示 FilesInUseDialog,但它未显示,这可能是由以下原因之一导致:

  • 正在使用的文件不是可执行文件。
  • 安装程序实际上并未尝试安装这些文件。
  • 保存这些文件的进程就是调用安装的进程。
  • 保存这些文件的进程是没有包含与之相关的标题的窗口的进程。

有关详细信息,请参阅重新启动请求的日志记录