多個修補範例
下列範例示範如何使用 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 | ProductCode | 順序 | 屬性 |
---|---|---|---|
AppPatch | {18A9233C-0B34-4127-A966-C257386270BC} | 1.1.0 |
QFE2小型更新的MsiPatchSequence 資料表。
PatchFamily | ProductCode | 順序 | 屬性 |
---|---|---|---|
AppPatch | {18A9233C-0B34-4127-A966-C257386270BC} | 1.2.0 |
ServicePack1次要升級的MsiPatchSequence 資料表。
PatchFamily | ProductCode | 順序 | 屬性 |
---|---|---|---|
AppPatch | {18A9233C-0B34-4127-A966-C257386270BC} | 1.3.0 |
如果使用者安裝 1.0 版的產品,然後套用 QFE2,然後在稍後決定套用 QFE1,Windows Installer 可確保在 QFE2 之前套用產品的有效修補程式應用程式順序。 如果使用者套用 ServicePack1,則會在稍後一起套用 QFE2 和 QFE1,Windows Installer 可確保產品的有效修補程式應用程式順序在 QFE2 和 ServicePack1 之前為 QFE1。
如果 ServicePack1 在其MsiPatchSequence 資料表的 Attributes資料行中設定msidbPatchSequenceSequenceSupersedeEarlier,這表示 Service Pack 包含 QFE1 和 QFE2 中的所有變更。 在此情況下,套用 ServicePack1 時不會套用 QFE1 和 QFE2。
Windows Installer 2.0: 不支援。 Windows Installer 3.0 之前的版本每個交易只能安裝一個修補程式,而且修補程式會依提供的順序套用。 在上述範例中,如果先套用 QFE2,然後套用 QFE1,即兩筆交易,修補程式會套用至序列 QFE2 中應用程式 1.0 版,後面接著 QFE1。 如果先套用 ServicePack1,則 QFE1 或 QFE2 無法在稍後的交易中套用,因為 ServicePack1 是變更應用程式版本的次要升級。 QFE1 和 QFE2 只能套用至應用程式的 1.0 版。