修補
使用 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 如何決定用來套用修補程式的順序的詳細資訊,請參閱 排序修補程式 。
- 將修補程式套用至已安裝在個別使用者管理內容中的應用程式。 如需詳細資訊,請參閱 修補個別使用者受控應用程式 。
**Windows Installer 2.0: **
不支援 MsiPatchSequence 資料表 。 從 Windows Installer 3.0 開始,修補程式套件可以包含有關其他更新和其他描述性資訊之修補程式修補順序的資訊。
建立修補程式套件的建議方法是使用 Msimsp.exe 和 Patchwiz.dll 等 修補程式建立工具。 開發人員可以產生修補程式建立檔案,如建立修補程式套件 一節 所述。 小型更新修補程式的建立說明如下一節: 小型更新修補範例 。
Microsoft Windows Installer 接受統一資源定位器(URL)作為修補程式的有效來源。 如需如何安裝位於網頁伺服器上的修補程式的詳細資訊,請參閱 從網際網路 下載和安裝修補程式。
第一次安裝應用程式時,可以將單一 Windows Installer 修補程式 (.msp 檔案) 套用至安裝套件。 如需詳細資訊,請參閱 修補初始安裝 。
當修補程式的應用程式可能需要存取原始安裝來源時,無法排除所有情況。 不過,若要將修補程式需要存取原始來源的可能性降到最低,請遵循下一節所列的點: 防止修補程式需要存取原始安裝來源 。
若要將修補程式未因後續自訂轉換而中斷的可能性降到最低,通常會先安裝修補程式,再接著自訂。 先安裝自訂轉換,然後修補,可能會中斷自訂。 如需修補自訂應用程式的詳細資訊,請參閱 修補自訂應用程式 。