共用方式為


多個修補範例

下列範例示範如何使用 Windows Installer 3.0 和更新版本,依其撰寫順序套用修補程式。

在此範例中,有三個修補程式:QFE1、QFE2 和 ServicePack1,而且每個修補程式都有 MsiPatchSequence 數據表。 這些修補程式已撰寫以用於應用程式 1.0 版。

修補程式名稱 修補程序類型 序號
QFE1 小型更新 1.1.0
QFE2 小更新 1.2.0
ServicePack1 小幅升級 1.3.0

 

每個修補程式的 MsiPatchSequence 數據表只有一筆記錄,其中包含修補程式系列、產品名稱和序號。 這三個修補程式全都套用至相同的產品,並屬於同一個修補程式系列,名為 AppPatch。 沒有任何修補程式具有 msidbPatchSequenceSupersedeEarlier 屬性。

用於 QFE1 小型更新的 MsiPatchSequence 數據表。

PatchFamily 產品代碼 序列 屬性
AppPatch {18A9233C-0B34-4127-A966-C257386270BC} 1.1.0

 

用於 QFE2 的 MsiPatchSequence 數據表小型更新

PatchFamily 產品代碼 序列 屬性
AppPatch {18A9233C-0B34-4127-A966-C257386270BC} 1.2.0

 

ServicePack1 次要升級的 MsiPatchSequence 數據表。

PatchFamily 產品代碼 序列 屬性
AppPatch {18A9233C-0B34-4127-A966-C257386270BC} 1.3.0

 

如果使用者安裝產品 1.0 版,接著套用 QFE2,並且在稍後決定套用 QFE1,Windows Installer 會確保修補程式的正確應用順序,即 QFE1 會在 QFE2 之前套用到產品。 如果使用者套用 ServicePack1,則稍後會將 QFE2 和 QFE1 套用在一起,Windows Installer 可確保產品的有效修補程式應用程式順序在 QFE2 之前和 ServicePack1 之前是 QFE1。

如果在 ServicePack1 的 MsiPatchSequence 表中的 Attributes 列設定了 msidbPatchSequenceSupersedeEarlier,這表示 ServicePack1 包含 QFE1 和 QFE2 中的所有變更。 在此情況下,套用 ServicePack1 時不會套用 QFE1 和 QFE2。

Windows Installer 2.0:不支援。 比 Windows Installer 3.0 更早的版本只能為每個交易安裝一個修補程式,而且修補程式會依提供的順序套用修補程式。 在上述範例中,如果先套用 QFE2,再套用 QFE1,這代表兩次交易,并且修補程序會依順序 QFE2 和 QFE1 套用至應用程式的 1.0 版。 如果先套用 ServicePack1,則 QFE1 或 QFE2 無法在稍後的交易中套用,因為 ServicePack1 是變更應用程式版本的次要升級。 QFE1 和 QFE2 只能套用至應用程式的 1.0 版。