Tabella MsiPatchSequence

La tabella MsiPatchSequence contiene tutte le informazioni necessarie per determinare la sequenza di applicazione di una piccola patch di aggiornamento rispetto a tutte le altre patch. La tabella deve trovarsi nel database del file di patch e non in una trasformazione nella patch. Il programma di installazione ignora questa tabella quando si applica una patch di aggiornamento principale . Quando si applica una patch di aggiornamento secondaria , il programma di installazione usa solo questa tabella per identificare le patch sostituite che non devono essere sequenziate.

La tabella MsiPatchSequence contiene le colonne seguenti.

Colonna Tipo Chiave Nullable
PatchFamily Identificatore S N
ProductCode GUID S S
Sequenza Versione N N
Attributi Integer N S

 

Colonne

PatchFamily

Specifica che la patch è un membro della famiglia di patch denominata in questo campo. Le patch nella stessa famiglia di patch destinate alla stessa versione del prodotto vengono ordinate in base ai valori nella colonna Sequence. Le patch all'interno della famiglia di patch vengono applicate al prodotto di destinazione nell'ordine di aumento della sequenza. PatchFamily viene usato anche per determinare quali patch devono essere sostituite. Una patch può essere elencata in più righe e appartiene a più famiglie di patch se si applica a più prodotti o include più correzioni.

Windows Installer non interpreta il valore PatchFamily in alcun modo diverso dai confronti per l'uguaglianza rispetto ad altri valori PatchFamily. Un valore PatchFamily deve essere univoco all'interno di ProductCode destinato al set di patch. Negli scenari di patch complessi l'identificatore PatchFamily potrebbe essere univoco a livello globale.

Productcode

Un valore in questo campo è facoltativo. Se un GUID del codice prodotto viene immesso in questo campo e la patch viene applicata al prodotto specificato, la patch viene ordinata e applicata come membro dell'oggetto PatchFamily specificato. Se un GUID del codice prodotto viene immesso in questo campo e la patch non viene applicata al prodotto specificato da ProductCode, questa riga viene ignorata. Se il valore in ProductCode è NULL, la patch viene ordinata e applicata come membro di PatchFamily per tutte le destinazioni della patch indipendentemente dal codice prodotto.

Una patch può avere più righe nella stessa PatchFamily e un codice ProductCode diverso per ogni prodotto destinato alla patch. Una riga per PatchFamily può specificare NULL per ProductCode. Se il prodotto di destinazione corrisponde a una riga con un ProductCode non NULL, il programma di installazione usa la riga corrispondente e ignora la riga con NULL ProductCode. Se nessuno dei codici prodotto specificati corrisponde alla destinazione, la patch viene ordinata e applicata come membro di PatchFamily per tutte le destinazioni della patch indipendentemente dal codice prodotto.

Sequenza

Il valore nella colonna Sequence specifica la sequenza di questa patch all'interno dell'oggetto PatchFamily specificato. Il valore in Sequence viene espresso nel formato dei dati Version . Il valore contiene tra 1 e 4 campi e ogni campo ha un intervallo compreso tra 0 e 65535. I membri di PatchFamily vengono ordinati e applicati al prodotto di destinazione nell'ordine di aumento dei valori Sequenza. Ad esempio, i sei valori seguenti aumentano: 1, 1.1, 1.2, 2.01, 2.01.1, 2.01.1.1.

Attributi

La presenza dell'attributo msidbPatchSequenceSupersedeEarlier in una riga indica che la piccola patch di aggiornamento sostituisce gli aggiornamenti forniti da tutte le patch con valori di Sequenza inferiori nella stessa PatchFamily. Questa patch contiene tutte le correzioni fornite dalle patch precedenti nell'oggetto PatchFamily specificato. Questo attributo non significa che questa patch sostituisce le patch precedenti in tutti i casi perché le patch precedenti possono appartenere a più famiglie di patch.

Una piccola patch di aggiornamento non può sostituire un aggiornamento secondario o una patch di aggiornamento principale in qualsiasi circostanza, anche se il msidbPatchSequenceSupersedeEarlier è impostato.

Nome Valore Significato
0x00 Indica un valore di sequenziazione semplice.
msidbPatchSequenceSupersedeEarlier 0x01 Indica una patch che sostituisce le patch precedenti in questa famiglia.

 

Convalida

ICE03
ICE06

Non supportato in Windows Installer 2.0 e versioni precedenti