ICE32
ICE32 會驗證 .msi 檔案中的索引鍵和外鍵大小和數據行定義類型相同。 此 ICE 自定義動作會使用 _Validation 數據表,並使用 msiViewGetColumnInfo所傳回的定義型別進行比較。 如需詳細資訊,請參閱 資料行定義格式。
結果
如果 .msi 檔案包含不同數據行長度或數據行數據類型之索引鍵的任何外鍵,ICE32 會張貼錯誤。
例
ICE32 會針對顯示的範例張貼兩個錯誤:
- 定義外鍵和索引鍵的大小不同。
- 已定義外鍵和索引鍵,其定義類型不同。
_Validation 資料表(部分)
桌子 | 列 | KeyTable | KeyColumn |
---|---|---|---|
檔 | 版本 | 檔 | 1 |
皮 瓣 | Column8 | 皮 瓣 | 1 |
資料列定義 (部分)
桌子 | 列 | 類型 | 大小 |
---|---|---|---|
檔 | 檔 | s | 72 |
檔 | 版本 | S | 32 |
皮 瓣 | Column1 | 我 | 2 |
皮 瓣 | Column8 | S | 32 |
File 數據表的 Version 數據行可以是 File 數據表中另一個檔案的外鍵。 這與隨附檔案一起發生。 不過,Version 資料行只允許字串長度 32,而 [檔案] 資料行則允許字串長度 72。 若要修正此錯誤,請將字串長度變更為相符。
定義外鍵和索引鍵的定義類型不同。 Flap 數據表的 Column8 會列為 Column1 的外鍵。 Column8 是字串數據行,Column1 是整數數據行。 必須定義外鍵和金鑰組,使其數據類型相符。
相關主題