修補程式套件
Windows Installer 修補程式 (.msp 檔案) 是用來將更新傳遞至 Windows Installer 應用程式的檔案。 修補程式是獨立的套件,其中包含更新應用程式所需的所有資訊。 修補程式套件 (.msp 檔案) 可以比整個更新應用程式的 Windows Installer 套件 (.msi 檔案) 小得多。 如需將較小的更新傳遞給應用程式的詳細資訊,請參閱 減少修補程式大小。
修補程式套件包含應用程式的實際更新,並描述應用程式可以接收修補程式的版本。 修補程式至少包含兩個資料庫轉換。 一個轉換會更新應用程式安裝資料庫中的資訊。 另一個轉換會新增安裝程式用來修補檔案的資訊。 安裝程式會使用轉換所提供的資訊來套用修補程式套件封包檔案數據流中儲存的修補程式檔案。 修補程式套件沒有類似安裝套件的資料庫(.msi 檔案。)
從 Windows Installer 3.0 版開始,修補程式套件可以包含有關 MsiPatchSequ ence 數據表中其他更新修補順序描述修補順序的資訊,以及 MsiPatchMetadata 數據表中的其他描述性資訊。
用戶可以從網路系統管理映像安裝應用程式和更新。 雖然修補程式套件可以套用至系統管理安裝,但傳遞更新的建議方法是讓使用者安裝原始應用程式,然後將修補程式套用至其電腦上的本機應用程式實例。 這可讓使用者與系統管理映像保持同步。 如果修補程式套用至系統管理安裝,該系統管理安裝的所有用戶端都必須重新快取,然後重新安裝應用程式以接收更新。 在使用者重新安裝和重新安裝之前,用戶無法隨選安裝,也無法從修補的系統管理安裝修復安裝。
從 Windows Installer 3.0 開始,非系統管理員可以在修補程式核准為系統管理員信任之後,將修補程式套用至每個使用者管理的應用程式。 如需如何執行這項作的詳細資訊,請參閱 Per-User Managed Applications修補。 另一種方法是使用最低許可權用戶帳戶修補。
注意
如果 AllowLockdownPatch 原則已設定,則非系統管理員使用者可以在提高許可權執行安裝時,將修補程式套用至現有的應用程式。 不建議使用這個方法,因為它可讓不受信任的修補程式套用至可使用更高許可權執行的應用程式。
修補程式套件是由下列部分所組成。 如需修補套件建構的詳細資訊,請參閱 建立修補程式套件。
摘要信息數據流
修補程式套件的摘要信息數據流提供修補程式身分識別和用途的相關信息。
摘要資訊數據流至少會保留下列專案:
- 可唯一識別修補程式的 GUID。 此修補程式的 GUID 會附加此修補程式的 GUID 清單,以供此修補程式取代的舊版修補程式。
- 此修補程式有效目標的以分號分隔的產品名稱清單。
- 轉換子記憶體名稱的分號分隔清單,會依處理的順序加以處理。
- 此修補程式的來源分號分隔清單。
轉換子記憶體
修補程式套件包含可新增或移除檔案、登錄專案、使用者介面和自定義的轉換。 轉換會包含在封裝中做為子記憶體。 修補程式套件包含每個目標資料庫的兩個轉換。 其中一個轉換是安裝資料庫的實際更新,而且是從安裝套件的原始和更新映像之間的差異產生。 其他轉換會將專案新增至 Patch、PatchPackage、Media、InstallExecuteSequence和 AdminExecuteSequence 數據表。 子記憶體中的資訊會將它系結至特定 UpgradeCode、ProductCode、ProductVersion,以及 ProductLanguage。 可套用至多個目標的修補程式套件包含一組以上的這些轉換。
封包檔案數據流
修補程式中包含的封包檔案數據流可以包含下列類型的檔案:
- 修補程式檔案,其中包含將舊版檔案變更為新版本所需的資訊。 單一修補程式檔案可用來更新一或多個舊版的檔案。
- 將其他檔案新增至舊版中不存在的應用程式。
- 整個取代檔案。 在極少數情況下,新版本的檔案小於更新該檔案舊版所需的修補程式,新檔案可以全部包含在其中。 這些是透過舊版安裝的新檔案。
相關主題