Compartilhar via


Exemplo de aplicação de patch múltipla

O exemplo a seguir mostra como o Windows Installer 3.0 e versões posteriores pode ser usado para aplicar patches na ordem em que eles 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 Atualização secundária 1.3.0

 

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

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

PatchFamily ProductCode Sequência Atributos
AppPatch {18A9233C-0B34-4127-A966-C257386270BC} 1.1.0

 

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

PatchFamily ProductCode Sequência Atributos
AppPatch {18A9233C-0B34-4127-A966-C257386270BC} 1.2.0

 

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

PatchFamily ProductCode 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 o QFE2 e, em uma data posterior, decidir aplicar o QFE1, o Windows Installer garantirá que a sequência efetiva do aplicativo de patch ao produto seja a aplicação do QFE1 antes do QFE2. Se o usuário aplicar o ServicePack1 e, em seguida, o QFE2 e o QFE1 em uma data posterior, o Windows Installer garantirá que a sequência efetiva da aplicação de patch ao produto seja o QFE1 na frente do QFE2 e na frente do ServicePack1.

Se o ServicePack1 tiver msidbPatchSequenceSupersedeEarlier definido na coluna Attributes da tabela MsiPatchSequence, isso significará que o service pack contém todas as alterações no QFE1 e no QFE2. Nesse caso, o QFE1 e o QFE2 não são aplicados quando o ServicePack1 é aplicado.

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