Partilhar via


Exemplo de aplicação de vários patches

O exemplo a seguir mostra como o Windows Installer 3.0 e posterior pode ser usado para aplicar patches na ordem em que são criados.

Exemplo

Neste exemplo, há três patches, QFE1, QFE2 e ServicePack1, e cada um deles tem uma tabela MsiPatchSequence. Esses patches foram criados para serem aplicados à versão 1.0 do aplicativo.

Nome do patch Tipo de patch Número de sequência
QFE1 Pequena atualização 1.1.0
QFE2 Pequena atualização 1.2.0
ServicePack1 Pequena atualização 1.3.0

 

A tabela MsiPatchSequence de cada patch tem apenas um registro que contém a família de patches, o código do produto e o número de sequência. Os três patches são todos aplicados ao mesmo produto e pertencem à mesma família de patches, denominada AppPatch. Nenhum dos patches tem o atributo msidbPatchSequenceSupersedeEarlier.

Tabela MsiPatchSequence para a pequena atualização do QFE1.

Família PatchFamily Código do Produto Sequência Atributos
AppPatch {18A9233C-0B34-4127-A966-C257386270BC} 1.1.0

 

Tabela MsiPatchSequence para a pequena atualização do QFE2.

PatchFamily Código do Produto Sequência Atributos
AppPatch {18A9233C-0B34-4127-A966-C257386270BC} 1.2.0

 

Tabela MsiPatchSequence para ServicePack1 atualização secundária.

Família de Patches Código do Produto Sequência Atributos
AppPatch {18A9233C-0B34-4127-A966-C257386270BC} 1.3.0

 

Se um usuário instalar a versão 1.0 do produto e, em seguida, aplicar QFE2 e, em seguida, em uma data posterior decidir aplicar QFE1, o Windows Installer garante que a sequência efetiva de aplicação de patch para o produto é QFE1 aplicada antes de QFE2. Se o usuário aplicar o ServicePack1 e, em seguida, aplicar QFE2 e QFE1 juntos em uma data posterior, o Windows Installer garante que a sequência efetiva de aplicação de patch para o produto seja QFE1 à frente do QFE2 e à frente do ServicePack1.

Se o ServicePack1 tiver msidbPatchSequenceSupersedeEarlier definido na coluna Atributos da sua tabela MsiPatchSequence, isto significa que o service pack inclui todas as alterações de QFE1 e QFE2. Nesse caso, QFE1 e QFE2 não são aplicados quando ServicePack1 é aplicado.

Windows Installer 2.0: Não suportado. As versões anteriores ao Windows Installer 3.0 podem instalar apenas um patch por transação e os patches são aplicados na sequência em que são fornecidos. Para o exemplo anterior, se QFE2 é aplicado primeiro e, em seguida, QFE1 é aplicado, ou seja, duas transações e os patches são aplicados à versão 1.0 do aplicativo na sequência QFE2 seguida por QFE1. Se o ServicePack1 for aplicado primeiro, QFE1 ou QFE2 não poderão ser aplicados em uma transação posterior porque o ServicePack1 é uma atualização secundária que altera a versão do aplicativo. QFE1 e QFE2 só podem ser aplicados à versão 1.0 do aplicativo.