Поделиться через


Пример нескольких патчей

В следующем примере показано, как установщик Windows 3.0 и более поздних версий можно использовать для применения исправлений в том порядке, в котором они создаются.

Пример

В этом примере есть три патча: QFE1, QFE2 и ServicePack1, и у каждого из них есть таблица MsiPatchSequence. Эти исправления были созданы для применения к версии 1.0 приложения.

Имя исправления Тип исправления Порядковый номер
QFE1 Небольшое обновление 1.1.0
QFE2 Небольшое обновление 1.2.0
ServicePack1 Незначительное обновление 1.3.0

 

В таблице MsiPatchSequence каждого исправления есть только одна запись, содержащая семейство патчей, код продукта и порядковый номер. Три исправления применяются к одному продукту и принадлежат к одному семейству исправлений с именем AppPatch. Ни один из исправлений не содержит атрибут msidbPatchSequenceSupersedeEarlier.

Таблица MsiPatchSequence для небольшого обновления QFE1.

PatchFamily Код продукта Последовательность Атрибуты
AppPatch {18A9233C-0B34-4127-A966-C257386270BC} 1.1.0

 

таблица MsiPatchSequence для небольшого обновления QFE2.

PatchFamily Код продукта Последовательность Атрибуты
AppPatch {18A9233C-0B34-4127-A966-C257386270BC} 1.2.0

 

таблица MsiPatchSequence для ServicePack1 незначительного обновления.

PatchFamily Код продукта Последовательность Атрибуты
AppPatch {18A9233C-0B34-4127-A966-C257386270BC} 1.3.0

 

Если пользователь устанавливает версию 1.0 продукта, а затем применяет QFE2, а затем на более позднюю дату решает применить QFE1, установщик Windows гарантирует, что эффективная последовательность приложения исправлений к продукту применяется QFE1 перед QFE2. Если пользователь применяет ServicePack1, а позже применяет QFE2 и QFE1 вместе, установщик Windows гарантирует, что реальная последовательность применения патчей к продукту будет такой: сначала QFE1, затем QFE2 и, наконец, ServicePack1.

Если ServicePack1 имеет msidbPatchSequenceSupersedeEarlier в столбце "Атрибуты" своей таблицы MsiPatchSequence, это означает, что пакет обновления содержит все изменения в QFE1 и QFE2. В этом случае QFE1 и QFE2 не применяются при применении ServicePack1.

Установщик Windows 2.0: Не поддерживается. Версии, предшествующие установщику Windows 3.0, могут устанавливать только одно исправление для каждой транзакции и исправления применяются в последовательности, которую они предоставляют. В предыдущем примере, если QFE2 применяется сначала, а затем QFE1, то это две транзакции, и исправления применяются к версии 1.0 приложения в следующем порядке: сначала QFE2, затем QFE1. Если сначала применяется ServicePack1, то QFE1 или QFE2 нельзя применить в более поздней транзакции, так как ServicePack1 является незначительным обновлением, которое изменяет версию приложения. QFE1 и QFE2 можно применять только к версии 1.0 приложения.