Esempio di applicazione di patch multiple
L'esempio seguente mostra come è possibile usare Windows Installer 3.0 e versioni successive per applicare patch nell'ordine in cui vengono create.
Esempio
In questo esempio sono disponibili tre patch, QFE1, QFE2 e ServicePack1, ognuna con una tabella MsiPatchSequence . Queste patch sono state create per essere applicate alla versione 1.0 dell'applicazione.
Nome patch | Tipo di patch | Numero sequenza |
---|---|---|
QFE1 | Aggiornamento di piccole dimensioni | 1.1.0 |
QFE2 | Aggiornamento di piccole dimensioni | 1.2.0 |
ServicePack1 | Aggiornamento secondario | 1.3.0 |
La tabella MsiPatchSequence di ogni patch contiene un solo record contenente la famiglia di patch, il codice del prodotto e il numero di sequenza. Le tre patch vengono tutte applicate allo stesso prodotto e appartengono alla stessa famiglia di patch, denominata AppPatch. Nessuna delle patch ha l'attributo msidbPatchSequenceSupersedeEarlier .
Tabella MsiPatchSequence per l'aggiornamento di piccole dimensioni QFE1.
PatchFamily | ProductCode | Sequenza | Attributi |
---|---|---|---|
AppPatch | {18A9233C-0B34-4127-A966-C257386270BC} | 1.1.0 |
Tabella MsiPatchSequence per l'aggiornamento di piccole dimensioni QFE2.
PatchFamily | ProductCode | Sequenza | Attributi |
---|---|---|---|
AppPatch | {18A9233C-0B34-4127-A966-C257386270BC} | 1.2.0 |
Tabella MsiPatchSequence per l'aggiornamento secondario di ServicePack1.
PatchFamily | ProductCode | Sequenza | Attributi |
---|---|---|---|
AppPatch | {18A9233C-0B34-4127-A966-C257386270BC} | 1.3.0 |
Se un utente installa la versione 1.0 del prodotto e quindi applica QFE2 e successivamente decide di applicare QFE1, Windows Installer garantisce che la sequenza effettiva dell'applicazione patch al prodotto venga applicata prima del QFE2. Se l'utente applica ServicePack1, applica QFE2 e QFE1 in un secondo momento, Windows Installer garantisce che la sequenza effettiva dell'applicazione patch al prodotto sia QFE1 prima di QFE2 e prima di ServicePack1.
Se ServicePack1 ha msidbPatchSequenceSupersedeEarlier impostato nella colonna Attributes della tabella MsiPatchSequence , significa che il Service Pack contiene tutte le modifiche in QFE1 e QFE2. In questo caso, QFE1 e QFE2 non vengono applicati quando viene applicato ServicePack1.
Windows Installer 2.0: Non supportato. Le versioni precedenti a Windows Installer 3.0 possono installare una sola patch per transazione e le patch vengono applicate nella sequenza specificata. Per l'esempio precedente, se QFE2 viene applicato per primo e quindi viene applicato QFE1, ovvero due transazioni e le patch vengono applicate alla versione 1.0 dell'applicazione nella sequenza QFE2 seguita da QFE1. Se ServicePack1 viene applicato per primo, non è possibile applicare QFE1 o QFE2 in una transazione successiva perché ServicePack1 è un aggiornamento secondario che modifica la versione dell'applicazione. QFE1 e QFE2 possono essere applicati solo alla versione 1.0 dell'applicazione.