使用 Microsoft Windows Installer 安裝的應用程式,可以藉由重新安裝更新的安裝套件(.msi 檔案),或將 Windows Installer 修補程式 (.msp 檔案) 套用至應用程式,來升級。
Windows Installer 修補程式 (.msp 檔案) 是一個獨立套件,其中包含應用程式的更新,並描述應用程式可以接收修補程式的版本。 修補程式至少包含兩個資料庫轉換,而且可以包含儲存在修補程式套件封包檔案數據流中的修補程式檔案。 如需 Windows Installer 修補程式套件元件的詳細資訊,請參閱 修補程式套件。
藉由傳遞 Windows Installer 修補程式來維護應用程式,而不是更新產品的完整安裝套件可能會有優點。 修補程式可以包含整個檔案,或只包含更新部分檔案所需的檔案位。 這可讓用戶下載比整個產品的安裝套件小得多的升級修補程式。 使用修補程式的更新可以透過升級保留應用程式的使用者自定義。
**Windows Installer 4.5 和更新版本: **
從 Windows Installer 4.5 開始,開發人員可以使用 Component 數據表中的 msidbComponentAttributesUninstallOnSupersedence 值標記修補程式中的元件。 如果已安裝後續的修補程式, 標示 msidbPatchSequenceSupersedeEarlier 值 MsiPatchSequence 數據表 來取代第一個修補程式,Windows Installer 4.5 和更新版本可以取消註冊和卸載標示 msidbComponentAttributesUninstallOnSupersedence,以避免在計算機上留下未使用的元件。 如果元件未標示此位,則取代修補程式的安裝可能會在計算機上留下未使用的元件。 設定 MSIUNINSTALLSUPERSEDEDCOMPONENTS 屬性的效果與為所有元件設定此位相同。
**Windows Installer 3.0 和更新版本: **
使用 Windows Installer 3.0 和撰寫具有 MsiPatchSequence 數據表的修補程式套件的開發人員 可以建立執行下列動作的修補程式套件:
- 使用安裝程式快取的產品基準,以更輕鬆地維護具有較小增量修補的應用程式。 如需使用產品基準的詳細資訊,請參閱 減少修補程式大小。
- 略過與修補程式未修改之特定數據表相關聯的動作。 這可大幅縮短安裝修補程式所需的時間。 如需可以略過哪些資料表的詳細資訊,請參閱 修補程式優化。
- 建立並安裝可個別卸載的修補程式,且能以任何順序卸載,而不需要卸載並重新安裝整個應用程式和其他修補程式。 如需卸載修補程式的詳細資訊,請參閱 移除修補程式。
- 不論修補程式提供給系統的順序為何,都以固定順序套用修補程式。 如需 Windows Installer 如何決定用來套用修補程式順序的詳細資訊,請參閱 排序修補程式。
- 將修補程式套用至已安裝在個別使用者管理內容中的應用程式。 如需詳細資訊,請參閱 修補 Per-User 受管理應用程式。
**Windows Installer 2.0: **
不支援 MsiPatchSequence 表格。 從 Windows Installer 3.0 開始,修補程式套件可以包含描述修補程式相對於其他更新的套用順序及其他描述性資訊的資訊。
建立修補程式套件的建議方法是使用修補程式建立工具,例如 Msimsp.exe 和 Patchwiz.dll。 開發人員可以產生修補程式建立檔案,如本節所述:建立修補程式套件。 小型更新修補程式的建立說明在以下章節中:小型更新修補範例。
Microsoft Windows Installer 接受統一資源定位器(URL)作為修補程式的有效來源。 如需有關如何在網頁伺服器上安裝修補程式的詳細資訊,請參閱 從因特網下載及安裝修補程式。
第一次安裝應用程式時,可以將單一 Windows Installer 修補程式 (.msp 檔案) 套用至安裝套件。 如需詳細資訊,請參閱 修補初始安裝。
當修補程式的應用程式可能需要存取原始安裝來源時,無法排除所有情況。 不過,若要將修補程式需要存取原始來源的可能性降到最低,請遵循下一節所列的點:防止修補程式需要存取原始安裝來源。
若要將修補程式未因後續自定義轉換而中斷的可能性降到最低,通常會先安裝修補程式,再接著自定義。 先安裝客製化轉換,再安裝補丁,可能會導致客製化的中斷。 如需修補自訂應用程式的詳細資訊,請參閱 修補自定義應用程式。