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


Пример применения нескольких исправлений

В следующем примере показано, как установщик 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 ProductCode Последовательность Атрибуты
AppPatch {18A9233C-0B34-4127-A966-C257386270BC} 1.1.0

 

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

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

 

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

PatchFamily ProductCode Последовательность Атрибуты
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 в столбце Attributes таблицы 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 приложения.