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.