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