ICE02
ICE02 會驗證元件、檔案和登錄數據表之間的特定參考是相互的。 這些參考必須是對等的,安裝程式才能正確判斷元件的安裝狀態。
安裝程式會使用 Component 數據表的 KeyPath 數據行來偵測 Component 資料行中所列的元件是否存在。 KeyPath 數據行包含登錄或檔案數據表中的機碼。 這兩個數據表都有一個Component_數據行,其中包含指向控制登錄專案或檔案之元件的元件數據表中的索引鍵。 這些參考必須是相互的。
如果 ICE02 找到應為互惠且不是的參考,則會張貼錯誤訊息。
ICE02 會針對包含所顯示資料庫專案的 .msi 檔案張貼下列錯誤訊息。
File: 'Red_File' cannot be the key file for Component: 'Blue'. The file belongs to Component: 'Red'
元件表 (部分)
元件 | KeyPath |
---|---|
紅 | Red_File |
藍色 | Red_File |
檔案表格 (部分)
檔案數據行 | 元件_ |
---|---|
Red_File | 紅 |
Blue_File | 藍色 |
元件藍色參考Red_File,但Red_File不受 Component Blue 控制,因此不能是 KeyPath 檔案。 如果呼叫安裝程式以取得 Blue 的安裝狀態,則會錯誤地檢查是否已安裝Red_File。 將元件數據表中 Blue 的 KeyPath 字段變更為Blue_File修正錯誤。