由於不必要的檔案複製會降低安裝速度,因此 Windows Installer 會先判斷是否已安裝元件的密鑰檔,然後再嘗試安裝任何元件的檔案。 如果安裝程式找到與目標位置所安裝元件金鑰檔案同名的檔案,它會比較兩個金鑰檔案的版本、日期和語言,並使用檔案版本控制規則來判斷是否要安裝套件所提供的元件。 如果安裝程序判斷它需要取代密鑰檔上的元件,則會在每個已安裝的檔案上使用檔案版本控制規則來判斷是否要取代檔案。
請注意,使用版本化檔案撰寫安裝套件時,File 資料表之 Version 資料行中的版本字串 必須一律與套件隨附的檔案版本相同。
您可以使用 REINSTALLMODE 屬性來覆寫或修改預設檔案版本設定規則。 安裝程式會在安裝、重新安裝或修復檔案時,使用 REINSTALLMODE 屬性所指定的檔案版本設定規則。 下列範例示範安裝程式如何套用預設 檔案版本設定規則。 REINSTALLMODE 屬性的預設值為 “omus”。
在重新安裝元件之前,系統會在系統上安裝下列元件金鑰檔案。
| 檔案 | 版本 | 建立日期 | 修改日期 | 語言 |
|---|---|---|---|---|
| FileA | 1.0.0000 | 1/1/99 | 1/1/99 | ENG |
| FileB | 2.0.0000 | 1/1/99 | 1/1/99 | 英語 |
| FileC | 1.0.0000 | 1/1/99 | 1/1/99 | 英文 |
| 存檔 | 1.0.0000 | 1/1/99 | 1/2/99 | 英文 |
| FileE | 沒有 | 1/1/99 | 1/1/99 | 沒有 |
| FileF (已修改 > 建立) |
沒有 | 1/1/99 | 1/2/99 | 沒有 |
| FileG | 1.0.0000 | 1/1/99 | 1/1/99 | 英文 |
| FileH | 1.0.0000 | 1/1/99 | 1/1/99 | ENG,FRN,SPN |
| FileI | 1.0.0000 | 1/1/99 | 1/1/99 | ENG,FRN |
| FileJ | 1.0.0000 | 1/1/99 | 1/1/99 | 英語, 德語, 義大利語 |
安裝程式套件中包含下列元件金鑰檔案。
| 檔 | 版本 | 建立日期 | 修改日期 | 語言 |
|---|---|---|---|---|
| FileA (標示為相同) |
1.0.0000 | 1/1/99 | 1/1/99 | 英語 |
| FileB (舊版) |
1.0.0000 | 1/1/99 | 1/1/99 | ENG |
| FileC (更新版本) |
2.0.0000 | 1/1/99 | 1/1/99 | 英文 |
| FileD (更新版本) |
2.0.0000 | 12/31/98 | 1/10/99 | FRN |
| FileE (標示為相同) |
沒有 | 1/1/99 | 1/1/99 | 沒有 |
| FileF (新檔案) |
沒有 | 1/3/99 | 1/3/99 | 沒有 |
| FileG (新語言) |
1.0.0000 | 1/1/99 | 1/1/99 | FRN |
| FileH (新語言) |
1.0.0000 | 1/1/99 | 1/1/99 | ITN、ENG、GER |
| FileI (其他語言) |
1.0.0000 | 1/1/99 | 1/1/99 | ENG,FRN,SPN |
| FileJ (語言較少) |
1.0.0000 | 1/1/99 | 1/1/99 | 德國 |
重新安裝元件之後,下列元件金鑰檔案會保留在系統上。 密鑰檔案的狀態會決定元件中任何其他檔案的狀態。
| 檔 | 版本 | 建立日期 | 修改日期 | 語言 |
|---|---|---|---|---|
| FileA (原始) | 1.0.0000 | 1/1/99 | 1/1/99 | ENG (英文) |
| FileB (原始) | 2.0.0000 | 1/1/99 | 1/1/99 | ENG |
| FileC (取代) | 2.0.0000 | 1/1/99 | 1/1/99 | ENG |
| FileD (取代) | 2.0.0000 | 12/31/98 | 1/10/99 | FRN |
| FileE (取代) | 沒有 | 1/1/99 | 1/1/99 | 沒有 |
| FileF (原始) | 沒有 | 1/1/99 | 1/2/99 | 沒有 |
| FileG (取代) | 1.0.0000 | 1/1/99 | 1/1/99 | FRN |
| FileH (取代) | 1.0.0000 | 1/1/99 | 1/1/99 | ITN,ENG,GER |
| FileI (取代) | 1.0.0000 | 1/1/99 | 1/1/99 | ENG,FRN,SPN |
| FileJ (原始) | 1.0.0000 | 1/1/99 | 1/1/99 | ENG,GER,ITN |
相關主題