Partilhar via


Tabela MsiPatchSequence

A tabela MsiPatchSequence contém todas as informações exigidas pelo instalador para determinar a sequência de aplicativo de um patch pequeno de atualização em relação a todos os outros patches. A tabela deve estar no banco de dados do arquivo de patch e não em uma transformação no patch. O instalador ignora essa tabela ao aplicar um patch de atualização principal. Ao aplicar um patch de atualização secundário, o instalador usa apenas essa tabela para identificar patches substituídos que não devem ser sequenciados.

A tabela MsiPatchSequence tem as colunas a seguir.

Coluna Tipo Chave Nullable
PatchFamily Identificador S N
ProductCode GUID S S
Sequência Versão N N
Atributos Inteiro N S

 

Colunas

PatchFamily

Especifica que o patch é um membro da família de patches chamada neste campo. Os patches na mesma família de patches direcionados à mesma versão do produto são classificados pelos valores na coluna Sequence. Os patches dentro da família de patches são aplicados ao produto de destino na ordem de sequência crescente. O PatchFamily também é usado para determinar quais patches devem ser substituídos. Um patch pode ser listado em várias linhas e pertencer a várias famílias de patch se ele se aplicar a mais de um produto ou incluir várias correções.

O Windows Installer não interpreta o valor PatchFamily de nenhuma forma diferente das comparações de igualdade em relação a outros valores PatchFamily. Um valor PatchFamily deve ser exclusivo dentro do ProductCode direcionado pelo conjunto de patches. Nos cenários complexos de aplicação de patch, o identificador PatchFamily pode precisar ser globalmente exclusivo.

ProductCode

Um valor nesse campo é opcional. Se um GUID de código de produto for inserido nesse campo e o patch estiver sendo aplicado ao produto especificado, o patch será classificado e aplicado como um membro do PatchFamily especificado. Se um GUID de código de produto for inserido nesse campo e o patch não estiver sendo aplicado ao produto especificado por ProductCode, essa linha será ignorada. Se o valor em ProductCode for NULL, o patch será classificado e aplicado como um membro de PatchFamily para todos os destinos do patch, independentemente do código do produto.

Um patch pode ter várias linhas no mesmo PatchFamily e um ProductCode diferente para cada produto direcionado pelo patch. Uma linha para PatchFamily pode especificar NULL para ProductCode. Se o produto de destino corresponder a uma linha com um ProductCode não NULL, o instalador usará a linha correspondente e ignorará a linha com o ProductCode NULL. Se nenhum dos códigos de produto especificados corresponder ao destino, o patch será classificado e aplicado como membro do PatchFamily para todos os destinos do patch, independentemente do código do produto.

Sequence

O valor na coluna Sequence especifica a sequência desse patch dentro do PatchFamily especificado. O valor em Sequence é expresso no formato de dados de versão. O valor contém entre 1 e 4 campos e cada campo tem um intervalo de 0 a 65535. Os membros de PatchFamily são classificados e aplicados ao produto de destino na ordem de valores de Sequência crescente. Por exemplo, os seis valores a seguir estão aumentando: 1, 1.1, 1.2, 2.01, 2.01.1, 2.01.1.1.

Attributes

A presença do atributo msidbPatchSequenceSupersedeEarlier em uma linha indica que o patch de pequena atualização substitui as atualizações fornecidas por todos os patches com valores de sequência menores no mesmo PatchFamily. Esse patch contém todas as correções fornecidas por patches anteriores no PatchFamily especificado. Esse atributo não significa que esse patch substitua os patches anteriores em todos os casos porque os patches anteriores podem pertencer a várias famílias de patch.

Um patch de pequena atualização não pode substituir uma atualização secundária ou um patch de atualização principal em nenhuma circunstância, mesmo que o msidbPatchSequenceSupersedeEarlier esteja definido.

Nome Valor Significado
0x00 Indica um valor de sequenciamento simples.
msidbPatchSequenceSupersedeEarlier 0x01 Indica um patch que substitui os patches anteriores nessa família.

 

Validação

ICE03
ICE06

Sem suporte no Windows Installer 2.0 e nas versões anteriores