遅延実行カスタム アクションの目的は、システム変更の実行を、インストール スクリプトが実行された時刻に遅延することです。 これは、通常のカスタム アクションまたは標準アクションとは異なり、インストーラーは、シーケンス テーブルまたは MsiDoAction呼び出しでアクションを検出した直後にアクションを実行します。 遅延実行カスタム アクションを使用すると、パッケージ作成者は、インストール スクリプトの実行中の特定の時点でシステム操作を指定できます。
インストーラーは、インストール シーケンスの処理時に遅延実行カスタム アクションを実行しません。 代わりに、インストーラーによってカスタム アクションがインストール スクリプトに書き込まれます。 この場合、インストーラーが設定するモード パラメーターはMSIRUNMODE_SCHEDULEDのみです。 実行モードのパラメーターの説明については、「MsiGetMode」を参照してください。
遅延実行カスタム アクションは、スクリプト生成を実行するセクション内の実行シーケンス テーブルでスケジュールする必要があります。 遅延実行のカスタム アクションは、InstallInitialize 後に実行され、アクション シーケンスで InstallFinalize を する前に実行する必要があります。
プロパティ、機能状態、コンポーネントの状態、またはターゲット ディレクトリを設定するカスタム アクション、またはシーケンス テーブルに行を挿入してシステム操作をスケジュールするカスタム アクションは、多くの場合、即時実行を安全に使用できます。 ただし、システムを直接変更するカスタム アクション、または別のシステム サービスを呼び出すカスタム アクションは、インストール スクリプトが実行された時点まで延期する必要があります。 カスタム アクションとメイン インストール スレッドの間の潜在的な競合の詳細については、「同期と非同期のカスタム アクションの」を参照してください。
インストール スクリプトは、それが書き込まれたインストール セッションの外部で実行できるため、インストール スクリプトの実行中にセッションが存在しなくなる可能性があります。 つまり、インストール シーケンス中の元のセッション ハンドルとプロパティ データ セットは、遅延実行カスタム アクションでは使用できません。 ダイナミック リンク ライブラリ (DLL) を呼び出す遅延カスタム アクションは、遅延実行カスタム アクションのコンテキスト情報の取得に関するページ の説明に従って、非常に限られた量の情報を取得するためにのみ使用できるハンドルを渡。
カスタム アクションのロールバック 、カスタム アクション コミットなど、遅延カスタム アクションは、ユーザーのセキュリティ コンテキストの外部で実行できる唯一の種類のアクションであることに注意してください。
関連トピック
-
カスタム アクション リファレンス の