内部整合性エバリュエーターの使用
データベースを検証するには、特別な検証ツールを使用して、内部整合性エバリュエーター (ICE) を含む .cub ファイルをデータベースにマージし、ICE を実行して結果を報告します。 このようなツールは、Microsoft Windows ソフトウェア開発キット (SDK) で提供されています。 サードパーティ ベンダーの作成環境では、ICE 検証システムを作成環境に組み込むこともできます。 ICE 検証を実行するための独自のツールを作成することもできます。 ほとんどの ICE 検証ツールは、.cub ファイルとデータベースを 3 番目の一時データベースにマージします。 Windows インストーラーでは、.cub ファイル内の各 ICE を実行すると、警告、エラー、デバッグ情報、および API エラーが表示されます。 インストーラーが ICE の実行を完了すると、変更を保存せずに、.msi ファイル、.cub ファイル、および一時データベースが閉じられます。 .msi ファイルと .cub ファイルは、検証テストによって変更されません。
ICE カスタム アクションでは、MsiProcessMessage を呼び出し、INSTALLMESSAGE_USER メッセージを投稿することでユーザーと通信します。 ICE メッセージは、通常、次のような情報を返します。
- エラーが見つかった ICE の名前
- ICE が作成された日付
- ICE の作成者
- ICE が最後に変更された日付。
- ICE が失敗する原因となった API エラーの説明
- エラーの説明
- ユーザーに対する警告
- エラーまたは警告を含むデータベース テーブルの名前
- エラーまたは警告を含むテーブル列の名前
- エラーまたは警告を含むテーブルの主キー
- デバッグ候補を提供する HTML ファイルの URL
- 他の情報を含めることができる文字列
インストール パッケージの作成者は、ICE カスタム アクションを記述することも、SDK で提供される .cub ファイルに含まれる標準の ICE セットを使用することもできます。 ICE の作成方法の詳細については、「ICE の構築」を参照してください。
開発者は、検証用の適切な ICE を作成した後、カスタム アクションを収集して、ICE とその必要なテーブルのみを含む .cub ファイルと呼ばれる .msi データベースにまとめる必要があります。 .cub ファイルはインストールできず、ICE カスタム アクションを保存してアクセスできるようにするためだけに使用されます。 .cub ファイルの作成の詳細については、「ICE データベースの構築」を参照してください。 また、開発者は、「ICE リファレンス」で説明されている既存の ICE を使用してインストール パッケージを検証することもできます。 これらの ICE は、SDK で提供されている標準の .cub ファイルから取得できます。
データベース テーブル エディター Orca または検証ツール msival2 のインストールでは、Logo.cub、Darice.cub、Mergemod.cub ファイルが提供されます。 Logo.cub ファイル内の ICE のセットは、Darice.cub ファイル内の ICE のサブセットです。 パッケージが Darice.cub を使用した検証に合格すると、Logo.cub で合格することになります。 Mergemod.cub には、マージ モジュールの検証に使用される一連の ICE が含まれています。 詳細については、「マージ モジュール ICE リファレンス」を参照してください。
インストール パッケージを検証するには
- 適切な ICE カスタム アクションを取得または作成します。 「ICE リファレンス」に記載されている既存の 1 つ以上の ICE を使用できる場合があります。 この一覧にまだない ICE が検証に必要な場合は、「ICEの構築」の説明に従って新しい ICE を作成できます。
- すべての ICE カスタム アクションを含む ICE データベースを準備します。 .cub ファイルの準備の詳細については、「ICE データベースの構築」セクションを参照してください。
- .cub ファイルと .msi ファイルを、Orca.exeや Msival2.exe などのパッケージ検証ツールに提供します。
マージ モジュールは、「マージ モジュールの検証」の説明に従って検証する必要があるので注意してください。