ICE30
ICE30 會驗證封裝含相同檔案的元件安裝永遠不會在同一個目錄中多次安裝檔案。
ICE30 會移至 Component 資料表 中的每個元件,然後從 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,而且元件 3 一律會與 Readme.1st 發生衝突。 ICE30 會產生 4 個錯誤,一對用於 SFN,一個用於 LFN。 |
警告:目標檔案 'README.1st' 可能會由 SFN 系統上的兩個不同的條件化元件安裝在 'TARGETDIR\COMMON TOOLS' 中:'Component4' 和 'Component5'。 如果條件不互斥,這會中斷元件參考計數系統。 | 因為 Component4 和 Component5 在 [元件] 資料表 的 [條件] 資料行中有專案,所以可能不會發生此檔案衝突。 ICE30 只會張貼警告,因為必須在安裝時判斷條件。 ICE30 會產生 4 個警告,一對用於 SFN,一對用於 LFN。 |
元件資料表 (部分)
元件 | Directory | 條件 |
---|---|---|
Component1 | Dir1 | |
Component2 | Dir2 | |
Component3 | Dir3 | |
Component4 | Dir3 | VersionNT |
Component5 | Dir3 | Version9X |
Directory | Parent_Directory | DefaultDir |
---|---|---|
SOURCEDIR | TARGETDIR | |
Dir1 | SOURCEDIR | 產品|Component1 Product:. |
Dir2 | SOURCEDIR | 產品:。 |
Dir3 | SOURCEDIR | 一般|一般工具: |
檔案資料表 (部分)
檔案 | 元件_ | FileName |
---|---|---|
File1 | Component1 | README.1st |
File2 | Component2 | README.1st |
File3 | Component3 | README.1st |
File4 | Component4 | README.1st |
File5 | Component5 | README.1st |