ICE の構築
ICE リファレンスにリストされている既存の ICE カスタム アクションの中に必要な内部整合性評価ツールが見つからない場合は、パッケージを検証するために独自の ICE を準備する必要があります。
ICE カスタム アクションを作成するときは、次の操作を行う必要があります。
- ICE は、次の表に示す型のカスタム アクションのみに基づいて行います。
- MsiProcessMessage を呼び出し、INSTALLMESSAGE_USER 型のメッセージを送信します。 ICE メッセージを作成するときは、ICE メッセージ ガイドラインのメッセージ形式に従ってください。
- API エラーをキャプチャし、常に ERROR_SUCCESS を返すように ICE を記述します。 これは、ICE の障害後に後続のカスタム アクションを実行できるようにするために必要です。
ICE カスタム アクションは、次のカスタム アクションの種類に制限されます。
カスタム アクション タイプ | 説明 |
---|---|
カスタム アクション タイプ 1 | バイナリ ストリーム内の DLL |
カスタム アクション タイプ 2 | バイナリ ストリーム内の EXE |
カスタム アクション タイプ 5 | バイナリ ストリームの JScript |
カスタム アクション タイプ 6 | バイナリ ストリームの VBScript |
カスタム アクション タイプ 37 | 文字列としての JScript コード |
カスタム アクション タイプ 38 | 文字列としての VBScript コード |
ICE カスタム アクションを作成するときは、次の操作を行わないでください。
- ICE が受信するエンジンへのハンドルがインストーラー データベースのインストール インスタンスであると想定しないでください。 インストール インスタンスでない場合は、特定のプロパティが定義されず、ソース ディレクトリとターゲット ディレクトリが解決されず、現在の機能の状態が定義されません。
- インストーラー アクション、カスタム アクション、または別の ICE の以前の実行、または非実行に依存しないでください。 以前の ICE によって任意のテーブルに一時列が作成されている可能性があるため、作成者は可能な限り名前で列を参照する必要があります。 ICE は終了する前に一時的な列またはテーブルをクリーンアップする必要があります。
- 作成者がデータベースのソース ディレクトリのイメージにアクセスできるとは想定しないでください。
- データベースに加えられた変更は永続しないものと想定しないでください。