檔案版本控制規則
任何安裝程式的核心是檔案的實際安裝。 判斷是否需要安裝檔案是一個複雜的過程。 在最高層級,此判斷取決於檔案所屬的元件是否標示為安裝。 一旦判斷應該複製檔案,如果目標資料夾中有另一個具有相同名稱的檔案,程式就會很複雜。 在這種情況下,進行判斷需要一組涉及下列屬性的規則:
- 版本
- 日期
- 語言
安裝程式只有在嘗試將檔案安裝到已經包含相同名稱檔案的位置時,才會使用這些規則。 在此情況下,Windows Installer 會使用下列規則,在其他條件不變的情況下,判定是否要安裝。
最高版本勝出—在其他條件相同的情況下,最高版本的檔案將勝出,即使電腦上的檔案具有最高版本也是如此。
版本化的檔案佔上風—版本化檔案會覆蓋安裝非版本化檔案。
偏好產品語言— 如果安裝的檔案具有與計算機上檔案不同的語言,請使用符合所安裝產品之語言的檔案。 語言中性檔案會被視為一個普通的語言,因此安裝的產品會再次被優先處理。
不相符的多種語言— 在分解要安裝之檔案與計算機上檔案之間的任何通用語言之後,會根據所安裝產品所需的內容,優先使用任何剩餘的語言。
保留超集語言: 保留支援多種語言的檔案,不論它是否已經在計算機上或正在安裝。
非版本檔案是用戶數據—如果修改日期晚於計算機上的檔案建立日期,請勿安裝檔案,因為會刪除使用者自定義專案。 如果修改日期和建立日期相同,請安裝檔案。 如果建立日期晚於修改日期,則會將檔案視為未修改,請安裝檔案。
隨附檔案 的安裝,不取決於它自己的檔案版本設定資訊,而是取決於其隨附父系的版本設定。 在隨附檔案的情況下,只有在父檔案版本較高時,才會略過安裝。 請注意,其元件密鑰路徑的檔案不得為隨附檔案,因為這會導致由隨附父檔案決定之密鑰路徑檔案的版本設定邏輯。
使用 隨附檔案的非版本化檔案— 利用隨附機制與版本化檔案相關聯的非版本化檔案會遵循版本化檔案的規則。 唯一的例外狀況是計算機上版本設定的檔案和所安裝的版本化檔案具有相同的版本和語言,但計算機上的隨附檔案遺失。 在此情況下,即使計算機上使用版本設定的檔案,仍會使用所安裝的隨附檔案。 此外,如果 REINSTALLMODE 屬性包含覆寫舊版選項 (“o” 或 “e”) 且隨附檔案的版本等於計算機上已有的檔案,則會安裝使用隨附檔案的非版本檔案。
規則為全域—決定何時安裝檔案的規則位於安裝程式內的一個位置,而且是全域的,這表示它們同樣適用於所有檔案。
如需檔案版本所使用的格式範例,請參閱 Version 資料類型。 如需更具體的資訊,請參閱 取代現有檔案 或 預設檔案版本設定。