ICE30
ICE30 會驗證包含相同檔案的元件安裝永遠不會在同一個目錄中多次安裝檔案。
ICE30 會移至 元件數據表中的每個元件,然後從 Directory 數據表決定元件的目標目錄。 然後,它會檢查這些元件中哪些元件會安裝到相同的目標目錄。 最後,它會使用 File 資料表 來確認這些元件中沒有任何檔案具有相同的名稱。
ICE30 會檢查長檔名 (LFN) 和簡短檔名 (SFN)。
ICE30 不會評估目錄解析中的屬性,因為這些屬性可以在運行時間變更,並改變目錄解析配置。 這表示 ICE30 可以偵測檔案衝突,因為路徑中具有相同屬性的目錄,但不會偵測兩個屬性具有相同值的衝突。
結果
ICE30 會針對每個將相同檔案安裝至相同目錄的元件,張貼錯誤訊息。
例
顯示的範例會傳回下列每個錯誤兩次。
ICE30 錯誤或警告 | 描述 |
---|---|
錯誤:目標檔案 'README.1st' 是由 SFN 系統上的兩個不同的元件安裝在 'TARGETDIR\PRODUCT' 中:'Component1' 和 'Component2'。 這會中斷元件參考計數。 | Component1 和 Component2 都有名為 'READEME.1st' 的檔案。 使用簡短檔名時,安裝程式會將 Dir1 和 Dir2 安裝到相同的目錄 TARGETDIR\PRODUCT。 ICE30 會產生兩個錯誤,每個檔案各產生一個錯誤。 在顯示錯誤位置的撰寫環境中,第一個錯誤位於 檔案數據表中的某個檔案專案,第二個位於另一個檔案的位置。 |
錯誤:安裝條件化元件會導致目標檔案 'README.1st' 由 LFN 系統上的兩個不同的元件安裝在 'TARGETDIR\COMMON TOOLS' 中:'Component3' 和 'Component4'。 這會中斷元件參考計數。 | Component4 在 [元件] 數據表的 [條件] 數據行中具有專案, 和 Component3 則沒有。 如果 VersionNT 為 True,則已安裝 Component4,且 Component3 一律會安裝 Readme.1st 衝突。 ICE30 會產生 4 個錯誤,一對 SFN,一對 LFN。 |
警告:SFN 系統上的兩個不同的條件化元件可能會將目標檔案 'README.1st' 安裝在 'TARGETDIR\COMMON TOOLS' 中:'Component4' 和 'Component5'。 如果條件不互斥,這會中斷元件參考計數系統。 | 因為 Component4 和 Component5 在 [元件] 數據表的 [條件] 資料行中都有專案, 因此可能不會發生此檔案衝突。 ICE30 只會張貼警告,因為必須在安裝時判斷條件。 ICE30 會產生 4 個警告,一對 SFN,一對 LFN。 |
元件資料表 (部分)
元件 | 目錄 | 條件 |
---|---|---|
Component1 | Dir1 | |
Component2 | Dir2 | |
Component3 | Dir3 | |
Component4 | Dir3 | VersionNT |
Component5 | Dir3 | Version9X |
目錄 | Parent_Directory | DefaultDir |
---|---|---|
SOURCEDIR | TARGETDIR | |
Dir1 | SOURCEDIR | 產品|Component1 Product:. |
Dir2 | SOURCEDIR | 產品:。 |
Dir3 | SOURCEDIR | 一般|一般工具: |
檔案資料表 (部分)
檔 | 元件_ | 檔名 |
---|---|---|
File1 | Component1 | README.1st |
File2 | Component2 | README.1st |
File3 | Component3 | README.1st |
File4 | Component4 | README.1st |
File5 | Component5 | README.1st |
相關主題