檔案成本
計算是決定安裝所需總磁碟空間的過程。 檔案成本計算過程中計算的要素包括安裝或移除檔案所需的磁碟空間量,以及登錄項目、快捷方式和其他雜項檔案所佔用的磁碟空間量。 排程要覆寫的現有檔案也會計算在磁碟成本總計中。
總成本會以每個元件 為基礎累積,由三個不同的部分組成:當地成本、原始成本和移除成本。 如果元件安裝在本機、從來源媒體執行或移除,這些部分會對應到所涉及的磁碟成本。
所有涉及安裝檔案成本的計算,取決於要安裝或移除檔案的磁碟區。 每次與元件相關聯的目錄變更時,都必須重新計算該元件所控制之安裝檔案的成本。 例如,因為目錄變更也可能意味著磁碟區變更,因此必須重新計算叢集檔案大小。 此外,必須檢查新的目錄,以判斷是否必須考慮任何可能覆寫的現有檔案。
呼叫 CostInitialize 動作之後,必須呼叫 FileCost 動作。 CostInitialize 動作會初始化安裝程式的內部例程,以動態計算涉及標準安裝動作的磁碟成本。 此時不會進行其他動態成本計算。
接下來,必須呼叫 CostFinalize 操作。 此動作會完成所有成本計算,並透過 Component 數據表提供成本數據。
CostFinalize 動作完成執行之後,元件 數據表會完全初始化,而且可以視需要起始包含 SelectionTree 控件的使用者介面對話框順序。 使用者介面對話框可能會提供選項,供使用者更改 Feature 表中任一功能的選取狀態或目的地目錄。 元件選取狀態變更時,此程式很類似;不過,在此情況下,只會重新計算變更元件的動態成本。
使用者在使用者介面中完成選取功能後,應該呼叫 InstallValidate 動作。 此動作會確認成本已歸結的所有磁碟區都有足夠的空間可供安裝。