ICE35

ICE35 會驗證封裝含儲存在 封包檔案 中之壓縮檔案的元件未設定為從來源執行。 使用 Windows Installer 2.0 或更新版本時,已移除此限制。

ICE35 會查詢 Media 資料表 的封包資料行,以判斷哪些檔案會壓縮並儲存在封包檔案中。 它會查詢 File 資料表 ,以判斷哪些元件包含這些檔案。 最後,它會檢查 Component 資料表 ,以判斷 Run-from-source 位是否設定在 [屬性] 資料行中。

結果

如果封包檔案中有儲存在屬於 msidbComponentAttributesSourceOnly 位之元件的封包檔案中,ICE35 會張貼錯誤訊息。 在元件資料表的 Attributes 資料行中設定。 使用 Windows Installer 2.0 或更新版本時,這會從錯誤變更為警告訊息。 僅支援 Windows Installer 2.0 和更新版本的套件,將 [摘要資訊資料流程] 的 PID_PAGECOUNT 屬性設定為至少 200 的值。

如果封包檔案中有儲存在屬於 msidbComponentAttributesOptional 位之元件中的壓縮檔案,則 ICE35 會張貼警告訊息。 元件資料表的 Attributes 資料行中設定。 Windows Installer 2.0 和更新版本已移除此警告訊息。

如果元件中的多個檔案位於封包檔案中,ICE35 會報告每個已從來源位集執行之檔案的錯誤。

範例

ICE35 會針對使用 Windows Installer 2.0 版之前的版本所顯示的範例報告下列錯誤和警告。

ICE35 錯誤 描述
錯誤:元件元件 3 只能從來源執行,因為其成員檔案 'File3' 已壓縮。 儲存在封包檔案中的壓縮檔案,而此檔案屬於元件,而 該元件在 Component 資料表的 Attributes 資料行中設定了 SourceOnly 位。 若要修正此錯誤,請將 Component2 的 Attributes 值較低 2 位變更為 「00」,這表示僅限本機,或從 CAB 檔案中移除 File4。
錯誤:元件元件 3 只能從來源執行,因為其成員檔案 'File3' 已壓縮。 儲存在封包檔案中的壓縮檔案,而此檔案屬於元件,而 該元件在 Component 資料表的 Attributes 資料行中設定了 SourceOnly 位。 因為元件中的檔案完全不需要來自相同的媒體,ICE35 會報告封包中元件中每個檔案的錯誤。
若要修正此錯誤,請將 Component2 的 Attributes 值較低 2 位變更為 「00」,這表示僅限本機,或從 CAB 檔案中移除 File4。

 

媒體資料表 (部分)

DiskID LastSequence 內閣
1 2  
2 4 One.cab
3 5 #Two.cab

 

檔案資料表 (部分)

檔案 元件_ 順序
File1 Component1 1
File2 Component2 2
File3 Component2 3
File4 Component3 4
File5 Component3 5

 

元件資料表 (部分)

元件 屬性
Component1 0
Component2 2
Component3 1

 

快速鍵資料表 (部分)

快速鍵 圖示_
Shortcut1 Icon2

 

請注意,也可以使用摘要資訊資料流程Word Count Summary屬性,將檔案標示為壓縮。

ICE 參考