次の方法で共有


内部整合性エバリュエーター - ICEs

内部整合性エバリュエーターは、ICE とも呼ばれ、VBScript、JScript、または DLL または EXE として記述されたカスタム アクションです。 これらのカスタム アクションを実行すると、データベースをスキャンして、データベース レコード内のエントリが個別に調べられた場合に有効ですが、データベース全体のコンテキストで不適切な動作が発生する可能性があります。 これは、MsiViewModifyを使用して個々のレコードに対して行われる検証とは異なります。

たとえば、コンポーネント テーブル には、MsiViewModifyを使用して個別にテストするときに有効なコンポーネントがいくつか一覧表示される場合があります。 ただし、MsiViewModify 、2 つのコンポーネントがコンポーネント コードと同じ GUID を使用する場合、エラーをキャッチしません。 ICE08 カスタム アクションは、コンポーネント テーブルに重複するコンポーネント コード GUID が含まれていないことを検証するように設計されています。

ICE カスタム アクションは、次の 4 種類のメッセージを返します。

  • エラー エラー メッセージは、不適切な動作を引き起こすデータベースの作成を報告します。 たとえば、コンポーネント GUID が重複すると、インストーラーによってコンポーネントが誤って登録されます。
  • 警告 警告メッセージは、特定のケースで不適切な動作を引き起こすデータベースの作成を報告します。 警告は、データベース作成の予期しない副作用を報告することもできます。 たとえば、名前の大文字と小文字のみが異なる 2 つの条件で、同じプロパティ名を入力します。 インストーラーでは大文字と小文字が区別されるため、インストーラーはこれらのプロパティを異なるプロパティとして扱います。
  • エラー エラー メッセージは、ICE カスタム アクションの失敗を報告します。 エラーは、通常、ICE が実行できないような重大な問題を持つデータベースによって発生します。
  • 情報 情報メッセージは ICE からの情報を提供し、データベースに問題があることを示しません。 多くの場合、簡単な説明など、ICE 自体に関する情報です。 ICE の実行時に進行状況情報を提供することもできます。

詳細については、「内部整合性エバリュエーター の使用を参照してください。