Rimozione di patch
A partire da Windows Installer versione 3.0, è possibile creare e installare patch che possono essere disinstallate e in qualsiasi ordine, senza dover disinstallare e reinstallare l'intera applicazione e altre patch. Windows Installer 3.0 consente anche di creare pacchetti patch con una scheda MsiPatchSequence che contiene informazioni sulla sequenza delle patch. Con le versioni di Windows Installer precedenti a Windows Installer 3.0, l'unico metodo per rimuovere patch particolari da un'applicazione consiste nel disinstallare l'intera applicazione con patch e quindi reinstallare senza riapplicare le patch da rimuovere.
L'eventuale disinstallazione di una patch dipende dalla modalità di creazione della patch, dalla versione di Windows Installer usata per installare la patch e dalle modifiche apportate dalla patch all'applicazione. Se una patch non è disinstallabile, l'unico modo per rimuovere la patch consiste nel disinstallare l'intera applicazione e reinstallare senza applicare la patch da rimuovere.
È possibile disinstallare una o più patch usando un'opzione della riga di comando, l'interfaccia di scripting o chiamando MsiRemovePatches da un'altra applicazione. Per altre informazioni su come disinstallare le patch, vedere Disinstallare patch.
Il valore della proprietàMSIPATCHREMOVEelenca le patch da disinstallare. Per ogni patch nell'elenco, il programma di installazione verifica che la patch sia disinstallabile. Se l'utente non dispone dei privilegi per rimuovere la patch, la patch è sconosciuta per il prodotto, i criteri di patch impediscono la rimozione o la patch è stata contrassegnata come non disinstallabile, il programma di installazione restituisce un errore che indica una transazione di installazione non riuscita. Per altre informazioni su cosa determina se una patch non è disinstallabile, vedere Uninstallable Patches.
Una volta verificata la patch come rimovibile, il programma di installazione rimuove la patch dalla sequenza di applicazione patch. Per altre informazioni su come Windows Installer 3.0 determina quale sequenza usare quando si applicano patch, vedere Sequenziazione di patch. Si noti che la rimozione di patch dalla sequenza può causare la riattivazione di patch contrassegnate come obsolete o sostituite.
Tutte le patch selezionate per la rimozione sono elencate nella proprietàMsiPatchRemovalList. Questa proprietà è una proprietà privata impostata dal programma di installazione e può essere utilizzata nelle espressioni condizionali o interrogata da azioni personalizzate. La proprietà contiene l'elenco dei GUID di codice patch delle patch da rimuovere. Un'azione personalizzata può determinare se lo stato di installazione della patch sia applicato, obsoleto o sostituito chiamando il MsiGetPatchInfoEx o la proprietà PatchProperty dell'oggetto Patch .
Dopo aver rimosso una patch, lo stato dell'applicazione è uguale a quello di se la patch non è mai stata installata. Se possibile, il programma di installazione limita il processo al subset di funzionalità interessate dalla patch da rimuovere. Il programma di installazione imposta automaticamente la proprietà REINSTALL sull'elenco delle funzionalità interessate. I file aggiunti dalla patch vengono rimossi e i file modificati dalla patch vengono sovrascritti. I file e le voci del Registro di sistema vengono ripristinati nella versione prevista dal prodotto meno la patch. Le funzionalità e i componenti aggiunti dalla patch non vengono registrati dall'applicazione. Si noti che altri contenuti aggiunti dalla patch possono rimanere nel computer dell'utente se il contenuto viene usato da un'altra patch ancora applicabile.
Se un file di un componente condiviso viene aggiornato da una patch, la modifica influisce su tutte le applicazioni che condividono il componente. Quando la patch viene rimossa, la modifica influisce su tutte le applicazioni che condividono il componente. Ciò significa che la rimozione di una patch da un'applicazione può ripristinare il file del componente condiviso in una versione precedente rispetto a quella richiesta da un'altra applicazione. Ciò potrebbe correggere la prima applicazione, ma la seconda applicazione smette di funzionare. In questo caso, la seconda applicazione può essere ripristinata reinstallando la seconda applicazione usando i metodi descritti in Reinstallazione di una funzionalità o di un'applicazione. Verrà ripristinata la versione con patch del file.
Argomenti correlati