次の方法で共有


再起動マネージャーでの Windows インストーラーの使用

Windows Vista でのインストールとサービスに Windows インストーラー 4.0 を使用するアプリケーションでは、Restart Manager を自動的に使用して、システムの再起動を減らします。 Windows Vista の既定の動作では、可能な限りオペレーティング システムをシャットダウンして再起動するのではなく、アプリケーションをシャットダウンします。 システムの再起動が避けられない場合、インストーラーは Restart Manager API を使用して、ユーザーのワークフローの中断を最小限に抑えるように再起動をスケジュールできます。

Windows インストーラー開発者は、次のアクションを実行して、Restart Managerで動作するようにパッケージを準備できます。

  • MsiRMFilesInUse ダイアログ ボックスをパッケージに追加します。 MsiRMFilesInUse ダイアログ ボックスがパッケージに存在する場合、フル UI ユーザー インターフェイス レベルでインストールを実行している Windows Vista ユーザーには、 アプリケーションを自動的に閉じて再起動するオプションが表示されます。 インストール パッケージには、MsiRMFilesInUse ダイアログ ボックスと FilesInUse ダイアログ ボックスの両方の情報を含めることができます。 MsiRMFilesInUse ダイアログ ボックスは、パッケージが Windows Vista に Windows インストーラー 4.0 以降でインストールされている場合にのみ表示され、それ以外の場合は無視されます。 MsiRMFilesInUse ダイアログ ボックスがない既存のパッケージは、[FilesInUse] ダイアログ ボックスを使用して引き続き機能します。 カスタマイズ変換を使用して、MsiRMFilesInUse ダイアログ ボックスを既存のパッケージに追加できます。

    エンド ユーザーは通常、フル UI ユーザー インターフェイス レベルでインストールを実行します。 基本的な UI レベルまたは縮小 UI レベルのインストールでは、再起動マネージャー を使用して、MsiRMFilesInUse ダイアログ ボックスが表示されない場合でも、システムの再起動を減らすことができます。 サイレント UI レベルのインストールは常にアプリケーションとサービスをシャットダウンし、Windows Vista では常に再起動マネージャーを使用します。

  • RegisterApplicationRestart 関数を使用して、アプリケーションを再起動用に登録します。 再起動マネージャーは、再起動のために登録されているアプリケーションのみを再起動できます。 再起動マネージャーは、インストール後に登録済みのアプリケーションを再起動します。 インストールでシステムの再起動が必要な場合、再起動マネージャーは、システムの再起動後に登録済みのアプリケーションを再起動します。

  • MsiSetExternalUI および MsiSetExternalUIRecord 関数を使用して外部ユーザー インターフェイス ハンドラーを有効にする場合は、INSTALLLOGMODE_RMFILESINUSEを指定します。 Windows インストーラーは、Restart Managerをサポートする外部ユーザー インターフェース ハンドラーに対して、INSTALLMESSAGE_RMFILESINUSE メッセージを送信する予定です。 登録または内部のユーザー インターフェイスがINSTALLMESSAGE_RMFILESINUSE メッセージを処理しない場合、インストーラーは、FilesInUse ダイアログ ボックスをサポートするユーザー インターフェイス ハンドラーに対してINSTALLMESSAGE_FILESINUSE メッセージを送信します。 詳細については、「外部 UI で再起動マネージャーを使用する」を参照してください。

  • カスタム アクションでは、Restart Manager セッションに属するリソースを追加できます。 InstallValidate アクションの前に、カスタム アクションをシーケンスする必要があります。 カスタム アクションでは、MsiRestartManagerSessionKey プロパティを使用してセッション キーを取得できます。また、Restart Manager API の rmJoinSessionおよび rmEndSession関数を呼び出す必要があります。 カスタム アクションでは、再起動マネージャー セッションに属するリソースを削除できません。 カスタム アクションは、RmShutdown、RmGetList、および RmRestart関数使用して、アプリケーションをシャットダウンまたは再起動しないでください。

  • パッケージ作成者は、MsiSystemRebootPending プロパティに LaunchCondition テーブルの条件に基づいて、システムの再起動が保留中のときにパッケージがインストールされないようにすることができます。

  • パッケージ作成者と管理者は、MSIRESTARTMANAGERCONTROLMSIDISABLERMRESTARTMSIRMSHUTDOWN プロパティ、および DisableAutomaticApplicationShutdown ポリシーを使用して、Windows インストーラーと再起動マネージャーの対話を制御できます。

  • アプリケーションとサービスは、Restart Manager ドキュメントの「Restart Manager の使用」セクションで説明されているガイドラインに従う必要があります。