ICE32
ICE32 は、.msi ファイル内のキーと外部キーが同じサイズと列定義の種類であることを確認します。 この ICE カスタム アクションにより、_Validation テーブルを使い、MsiViewGetColumnInfo から返される定義値を使って比較を行います。 詳細については、「列定義の形式」を参照してください。
列の長さまたは列のデータ型が異なるキーの外部キーが .msi ファイルに含まれている場合、ICE32 はエラーを投稿します。
ICE32 は、次の例のような 2 つのエラーを投稿します。
- サイズが異なる外部キーとキーが定義されています。
- 定義の種類が異なる外部キーとキーが定義されています。
_Validation テーブル (部分)
テーブル | 列 | KeyTable | KeyColumn |
---|---|---|---|
ファイル | バージョン | ファイル | 1 |
Flap | Column8 | Flap | 1 |
列の定義 (部分)
テーブル | 列 | Type | サイズ |
---|---|---|---|
ファイル | ファイル | s | 72 |
ファイル | バージョン | S | 32 |
Flap | 列 1 | i | 2 |
Flap | Column8 | S | 32 |
File テーブルの Version 列は、File テーブル内の別のファイルの外部キーである可能性があります。 これは、コンパニオン ファイルがある場合に発生します。 ただし、Version 列は文字列長 32 のみを使用できますが、File 列は文字列長 72 を使用できます。 このエラーを修正するには、文字列長が同じになるように変更します。
定義の種類が異なる外部キーとキーが定義されています。 Flap テーブルの Column8 は、Column1 の外部キーとして定義されています。 Column8 は文字列列であり、Column1 は整数列です。 外部キーとキーのペアは、そのデータ型が一致するように定義する必要があります。