Condividi tramite


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 una funzionalità sono mancanti o danneggiati.

Quando una funzionalità o un'applicazione viene reinstallata, vengono reinstallati anche tutti i servizi, le variabili di ambiente e le azioni personalizzate appartenenti alla funzionalità o all'applicazione. Si noti che tutte le modifiche apportate alle variabili di ambiente tra l'installazione originale e la reinstallazione vengono perse.

L'elenco seguente contiene i 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 funzionemsiReinstallFeature.
  • Reinstallare l'intero prodotto chiamando la funzione MsiReinstallProduct.
  • Reinstallare, sostituire o verificare i file tramite un pulsante di controllo dell'interfaccia utente dell'installer attraverso il ControlEvent Reinstall.
  • Reinstallare, sostituire o verificare i file da una riga di comando impostando la proprietàREINSTALLe la proprietà REINSTALLMODE.

Per altre informazioni sulla reinstallazione di una funzionalità o di un'applicazione, vedere Resilienza.

Reinstallare un prodotto usando il programma di installazione

Reinstallare una funzionalità usando il programma di installazione

Reinstallare un prodotto o una funzionalità con un'interfaccia utente del programma di installazione

  1. Aggiungere un pulsante alla finestra di dialogo specificata aggiungendo una voce alla tabella di controllo .

  2. Aggiungere un 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 Ordinamento per questo evento deve essere 1.

  3. Aggiungere un evento Reinstall ControlEvent alla tabella ControlEvent, facendo di nuovo riferimento allo stesso controllo del pulsante. Il campo Argument per questo evento sarà in genere ALL, per forzare la reinstallazione di tutte le funzionalità, ma qui è possibile inserire il nome di una funzionalità specifica. Il valore nella colonna Ordinamento per questo evento deve essere 2.

  4. Aggiungere un altro evento associato allo stesso controllo pulsante per avviare effettivamente la reinstallazione. Può trattarsi di un evento EndDialog (con l'argomento Return). Più tipicamente, però, un evento NewDialog verrebbe usato qui per passare a una finestra di dialogo di conferma Sei sicuro di voler reinstallare?. Il valore nella colonna Ordinamento per questo evento deve essere 3.

    Se lo si desidera, è possibile creare diversi pulsanti REINSTALLA 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 diverso ReinstallMode ControlEvent parametro per ogni pulsante.

Una volta installato un particolare 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

  1. Dal prompt dei comandi, specificare la proprietà REINSTALL.

  2. Dal prompt dei comandi, specificare la proprietà REINSTALLMODE.

    Specificando queste proprietà, l'utente può reinstallare tutte le funzionalità del prodotto. È anche possibile specificare il tipo di reinstallazione. Ad esempio, è possibile specificare che solo i file completamente mancanti devono essere reinstallati o che vengano sostituiti solo i file danneggiati (ad esempio, qualsiasi file eseguibile il cui checksum non corrisponde al contenuto effettivo del file).