修補程式套件

Windows Installer 修補程式 (.msp 檔案) 是用來將更新傳遞給 Windows Installer 應用程式的檔案。 修補程式是獨立的套件,其中包含更新應用程式所需的所有資訊。 修補程式套件 (.msp 檔案) 可能比整個更新應用程式的 Windows Installer 套件 (.msi 檔案) 小很多。 如需為應用程式傳遞較小更新的詳細資訊,請參閱 減少修補程式大小

修補程式套件包含應用程式的實際更新,並描述應用程式可以接收修補程式的版本。 修補程式至少包含兩個資料庫轉換。 一個轉換會更新應用程式安裝資料庫中的資訊。 另一個轉換會新增安裝程式用來修補檔案的資訊。 安裝程式會使用轉換所提供的資訊來套用修補程式檔案,這些檔案會儲存在修補程式套件的封包檔案資料流程中。 修補程式套件沒有類似安裝套件的資料庫 (.msi file.)

從 Windows Installer 3.0 版開始,修補程式套件可以包含一些資訊,描述 相對於 MsiPatchSequence 資料表中其他更新之修補程式的修補順序,以及 MsiPatchMetadata 資料表中的其他描述性資訊。

使用者可以從網路系統管理映射安裝應用程式和更新。 雖然修補程式套件可以套用至系統管理安裝,但建議的傳遞更新方法是讓使用者安裝原始應用程式,然後將修補程式套用至其電腦上的本機應用程式實例。 這可讓使用者與系統管理映射保持同步。 如果修補程式套用至系統管理安裝,該系統管理安裝的所有用戶端都必須回收並重新安裝應用程式,才能接收更新。 在使用者重新安裝之前,使用者無法隨選安裝,並從修補的系統管理安裝修複安裝。

從 Windows Installer 3.0 開始,非系統管理員可以在修補程式核准為系統管理員信任之後,將修補程式套用至每位使用者管理的應用程式。 如需如何執行這項操作的詳細資訊,請參閱 修補Per-User受控應用程式。 另一種方法是使用最低許可權的使用者帳戶修補。

注意

如果已設定 AllowLockdownPatch 原則,非系統管理員使用者可以在執行提高許可權的安裝時,將修補程式套用至現有的應用程式。 不建議使用這個方法,因為它可讓不受信任的修補程式套用至可使用更高許可權執行的應用程式。

 

修補程式套件包含下列部分。 如需有關建構修補程式套件的詳細資訊,請參閱 建立修補程式套件

摘要資訊資料流程

修補程式套件的摘要資訊資料流程提供修補程式的身分識別和用途的相關資訊。

摘要資訊資料流程至少保留下列各項:

  • 可唯一識別修補程式的 GUID。 此修補程式的 GUID 會附加此修補程式的 GUID 清單,以供此修補程式取代的舊版修補程式。
  • 此修補程式有效目標的以分號分隔的產品代碼清單。
  • 以分號分隔的轉換子儲存體名稱清單,依處理的順序排列。
  • 此修補程式的來源以分號分隔的清單。

轉換子儲存體

修補程式套件包含可新增或移除檔案、登錄專案、使用者介面和自訂專案的轉換。 轉換會包含在封裝中做為子儲存體。 修補程式套件包含每個目標資料庫的兩個轉換。 其中一個轉換是安裝資料庫的實際更新,是從安裝套件的原始和更新映射之間的差異產生。 其他轉換會將專案新增至 PatchPatchPackageMediaInstallExecuteSequenceAdminExecuteSequence 資料表。 子儲存體中的資訊會將它系結至特定的UpgradeCodeProductCode、ProductVersionProductLanguage 可套用至多個目標的修補程式套件包含一對以上的這些轉換。

封包檔案資料流程

修補程式中包含的封包檔案資料流程可以包含下列類型的檔案:

  • 包含將舊版檔案變更為新版本所需資訊的修補程式檔案。 單一修補程式檔案可用來更新一或多個舊版的檔案。
  • 其他檔案會新增至舊版中不存在的應用程式。
  • 整個取代檔案。 在少數情況下,新版本的檔案小於更新舊版該檔案所需的修補程式,新檔案可以完整包含在其中。 這些是在其舊版上安裝的新檔案。

建立修補程式套件