Reinstallazione di una funzionalità o di un'applicazione
Windows Installer può ripristinare, sostituire e verificare i file contenuti in un'applicazione. Una reinstallazione parziale o completa dell'applicazione potrebbe essere necessaria se eventuali file o voci del Registro di sistema associate a qualsiasi funzionalità sono mancanti o danneggiate.
Quando viene reinstallata una funzionalità o un'applicazione, vengono reinstallati anche tutti i servizi, le variabili di ambiente e le azioni personalizzate appartenenti alla funzionalità o all'applicazione. Si noti che le modifiche apportate alle variabili di ambiente tra l'installazione originale e la reinstallazione vengono perse.
L'elenco seguente contiene metodi per reinstallare una funzionalità o un prodotto. I primi due metodi sono stati automatizzati dal programma di installazione:
- Ripristinare, sostituire o verificare i file chiamando la funzione MsiReinstallFeature .
- Reinstallare l'intero prodotto chiamando la funzione MsiReinstallProduct .
- Reinstallare, sostituire o verificare i file con un pulsante di controllo dell'interfaccia utente del programma di installazione tramite Reinstall ControlEvent.
- Reinstallare, sostituire o verificare i file da una riga di comando impostando la proprietà REINSTALL E la proprietà REINSTALLMODE .
Per altre informazioni sulla reinstallazione di una funzionalità o di un'applicazione, vedere Resilienza.
Per reinstallare un prodotto usando il programma di installazione
- Chiamare MsiReinstallProduct.
Per reinstallare una funzionalità usando il programma di installazione
- Chiamare MsiReinstallFeature.
Per reinstallare un prodotto o una funzionalità con un'interfaccia utente del programma di installazione
Aggiungere un pulsante alla finestra di dialogo specificata aggiungendo una voce alla tabella Control.
Aggiungere un controllo ReinstallMode ControlEvent alla tabella ControlEvent , con i campi Dialog_ e Control_ che fanno riferimento al controllo pulsante creato nel passaggio 1. Nel campo Argomento immettere una stringa contenente le lettere corrispondenti alle modalità di reinstallazione desiderate (i valori accettabili per questo campo sono identici a quelli accettati per la proprietà REINSTALLMODE ). Il valore nella colonna Ordering per questo evento deve essere 1.
Aggiungere un evento Reinstall ControlEvent alla tabella ControlEvent, facendo di nuovo riferimento allo stesso controllo pulsante. Il campo Argomento per questo evento sarà normalmente ALL, per forzare la reinstallazione di tutte le funzionalità, ma è possibile inserire qui il nome di una funzionalità specifica. Il valore nella colonna Ordering per questo evento deve essere 2.
Aggiungere un altro evento associato allo stesso controllo pulsante, per avviare effettivamente la reinstallazione. Questo può essere un evento EndDialog (con un argomento Restituito). Più in genere, tuttavia, viene usato un evento NewDialog qui per passare a un oggetto Sei sicuro di reinstallare? finestra di dialogo di conferma. Il valore nella colonna Ordering per questo evento deve essere 3.
Se si desidera, è possibile creare diversi pulsanti REINSTALL per una singola finestra di dialogo, consentendo all'utente di selezionare il tipo di reinstallazione eseguita. In questo caso, ogni pulsante viene creato come descritto nella procedura precedente, con un parametro ReinstallMode ControlEvent diverso per ogni pulsante.
Dopo aver installato un determinato prodotto (con alcune o tutte le funzionalità del prodotto), è possibile eseguire una reinstallazione nella riga di comando:
Per reinstallare un prodotto o una funzionalità da una riga di comando
Dal prompt dei comandi specificare la proprietà REINSTALL .
Dal prompt dei comandi specificare la proprietà REINSTALLMODE .
Specificando queste proprietà, l'utente può reinstallare qualsiasi o tutte le funzionalità del prodotto. È anche possibile specificare il tipo di reinstallazione. Ad esempio, è possibile specificare che solo i file mancanti devono essere reinstallati o che solo i file danneggiati (ad esempio, qualsiasi file eseguibile il cui checksum non corrisponde al contenuto effettivo del file) viene sostituito.