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