共用方式為


ICE35

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

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

結果

ICE35 會在 元件數據表的 [屬性] 數據行中設定 msidbComponentAttributesSourceOnly 位的封包檔案中,張貼錯誤訊息。 使用 Windows Installer 2.0 或更新版本時,這會從錯誤變更為警告訊息。 僅支援 Windows Installer 2.0 和更新版本的套件,其摘要信息數據流的 PID_PAGECOUNT 屬性設定為至少 200 的值。

ICE35 會在 元件數據表的 [屬性] 數據行中設定 msidbComponentAttributesOptional 位的封包檔案中,張貼警告訊息。。 Windows Installer 2.0 和更新版本已移除此警告訊息。

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

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

ICE35 錯誤 描述
錯誤:元件元件 3 無法僅從來源執行,因為其成員檔案 'File3' 已壓縮。 封包檔案中有一個壓縮檔,而這個檔案屬於在 Component 數據表的 [屬性] 資料行中設定 SourceOnly 位的元件,。 若要修正此錯誤,請將 Component2 屬性值的下 2 位變更為 “00”,這表示僅限 Local,或從 CAB 檔案中移除 File4。
錯誤:元件元件 3 無法僅從來源執行,因為其成員檔案 'File3' 已壓縮。 封包檔案中有一個壓縮檔,而這個檔案屬於在 Component 數據表的 [屬性] 資料行中設定 SourceOnly 位的元件,。 因為元件中的檔案不必全部來自相同的媒體,ICE35 會針對位於封包中元件中的每個檔案報告錯誤。
若要修正此錯誤,請將 Component2 屬性值的下 2 位變更為 “00”,這表示僅限 Local,或從 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

 

請注意,也可以使用 摘要資訊數據流的 字數摘要 屬性,將檔案標示為壓縮。

ICE 參考