檔案成本

成本是決定安裝總磁碟空間需求的程式。 在檔案成本程式中計算的元素包括安裝或移除檔案的磁碟空間量,以及登錄專案、快捷方式和其他檔案所佔用的磁碟空間量。 排程覆寫的現有檔案也會以磁片成本總計計算。

總成本會以每個元件 為基礎累積,並包含三個不同的部分:本機成本、來源成本和移除成本。 這些元件會對應到在本機安裝元件、安裝以從來源媒體執行或移除時所產生的磁片成本。

所有涉及安裝檔案成本的計算,取決於要安裝或移除檔案的磁片區。 每次與元件相關聯的目錄變更時,都必須重新計算該元件所控制之安裝檔案的成本。 例如,因為目錄變更可能也表示磁片區變更,所以必須重新計算叢集檔案大小。 此外,必須檢查新的目錄,以判斷是否必須將任何可能覆寫的現有檔案納入考慮。

呼叫 CostInitialize 巨集指令之後,必須呼叫 FileCost 巨集指令。 CostInitialize 巨集指令會初始化安裝程式的內部常式,以動態計算與標準安裝動作相關的磁片成本。 此時不會進行其他動態成本計算。

接下來,必須呼叫 CostFinalize 動作。 此動作會完成所有成本計算,並讓成本資料可透過 Component 資料表取得。

在 CostFinalize巨集指令完成執行之後,元件資料表會完全初始化,而且如有需要,可以起始包含SelectionTree控制項的使用者介面對話方塊順序。 使用者介面對話方塊可能會提供選項,將 功能 資料表中任何功能的選取狀態或目的地目錄變更為使用者。 當元件選取狀態變更時,此程式會類似;不過,在此情況下,只會重新計算已變更元件的動態成本。

使用者完成在使用者介面中選取功能之後,應該呼叫 InstallValidate 動作。 此動作會確認成本已屬性化的所有磁片區都有足夠的空間可供安裝使用。