Installazioni simultanee

Installazioni simultanee, denominate anche Installazioni annidate, è una funzionalità deprecata di Windows Installer. Le applicazioni installate con installazioni simultanee possono avere esito negativo perché sono difficili per i clienti di eseguire correttamente il servizio. Non usare installazioni simultanee per installare i prodotti destinati a essere rilasciati al pubblico. Le installazioni simultanee possono avere un'applicabilità limitata negli ambienti aziendali controllati quando vengono usate per installare applicazioni che non sono destinate alla versione pubblica. La documentazione delle installazioni simultanee viene fornita per gli autori di pacchetti che desiderano usare installazioni simultanee con applicazioni che non sono per la distribuzione pubblica.

Un'azione di installazione simultanea installa un altro pacchetto di Windows Installer durante un'installazione attualmente in esecuzione. Un'installazione simultanea viene aggiunta a un pacchetto creando un'azione di installazione simultanea nella tabella CustomAction e pianificando questa azione personalizzata nelle tabelle della sequenza. Il campo Target della tabella CustomAction contiene una stringa di impostazioni delle proprietà pubbliche usate dall'installazione simultanea. Il campo Origine della tabella CustomAction identifica il pacchetto simultaneo. Un'azione di installazione simultanea può reinstallare o rimuovere un'applicazione installata dal pacchetto di installazione dell'applicazione corrente.

Il tipo di azione di installazione simultanea viene specificato nel campo Tipo della tabella CustomAction. A seconda del tipo di azione personalizzato, il pacchetto per l'applicazione simultanea può risiedere in una sottostoratura del pacchetto principale, come file in un percorso specificato da una proprietà o come applicazione annunciata nel computer dell'utente. I tipi seguenti di azioni personalizzate eseguono un'installazione simultanea.

Tipo di azione personalizzato Descrizione
Tipo di azione personalizzato 7 Installazione simultanea di un prodotto che risiede nel pacchetto di installazione.
Tipo di azione personalizzato 23 Installazione simultanea di un pacchetto del programma di installazione all'interno dell'albero di origine corrente.
Tipo di azione personalizzato 39 Installazione simultanea di un pacchetto di installazione annunciato.

 

Un'installazione simultanea condivide le stesse impostazioni dell'interfaccia utente e della registrazione dell'installazione principale.

Le azioni di installazione simultanee devono essere posizionate tra l'azione InstallInitialize e l'azione InstallFinalize della sequenza di azioni dell'installazione principale. Al rollback dell'installazione principale, il programma di installazione eseguirà anche il rollback dell'installazione simultanea. L'uso dell'esecuzione posticipata con azioni di installazione simultanee non è necessario perché il programma di installazione combina le informazioni di rollback dalle installazioni simultanee e principali. Tutte le modifiche vengono invertite dopo un'installazione di rollback.

I valori restituiti per le azioni di installazione simultanee sono uguali ad altre azioni personalizzate. Vedere Valori restituiti dall'azione personalizzata.

Azioni standard o personalizzate che specificano un riavvio automatico del sistema o richiedono il riavvio dell'utente, possono anche eseguire il riavvio o la richiesta dall'interno di un'installazione simultanea.

Dopo che il programma di installazione inizia un'installazione simultanea, blocca tutte le altre installazioni fino al completamento dell'installazione simultanea e prima di continuare l'installazione principale. Il programma di installazione può eseguire solo installazioni simultanee come azioni personalizzate sincrone. Vedere Azioni personalizzate sincrone e asincrone. I flag di opzione descritti in Opzioni di elaborazione restituite azione personalizzata devono essere impostati su nessuno (+0) o msidbCustomActionTypeContinue (+64).

Un'azione di installazione simultanea può installare un'applicazione da eseguire in locale, da eseguire dall'origine, da reinstallare o da rimuovere nello stesso modo di quando si usa MsiInstallProduct per un'installazione regolare. Per specificare il tipo di installazione, passare la proprietà ADDLOCAL, ADDSOURCE, REINSTALL o REMOVE all'azione di installazione simultanea.

Le azioni di installazione simultanee possono essere create in coppie, un'azione usata per l'installazione e l'altra azione usata per rimuovere l'installazione simultanea. Un tipo di azione personalizzato tipo 7 o tipo di azione personalizzato 23 viene in genere usato per installare. Un tipo di azione personalizzato 39 viene in genere usato per rimuovere l'installazione simultanea quando il prodotto padre viene disinstallato. Il record per l'azione personalizzata di rimozione nella tabella CustomAction può avere il GUID del codice prodotto nel campo Origine e "REMOVE=ALL" nel campo Target. Le due azioni personalizzate devono essere create nella tabella della sequenza di azioni con condizioni reciprocamente esclusive. Ad esempio, l'azione personalizzata che installa il prodotto può avere "NOT Installed" nel relativo campo Condition e l'azione personalizzata rimuove l'installazione simultanea può avere REMOVE="ALL" nel relativo campo Condizione.

Non esiste alcun metodo per eseguire query su un pacchetto per il relativo costo. Ciò rende difficile il costo di installazioni simultanee. Le righe devono essere aggiunte alla tabella ReserveCost per indicare le cartelle e i costi peggiori del componente associato all'installazione simultanea.

L'unica opzione di elaborazione personalizzata restituita azione disponibile con azioni di installazione simultanee none (+0) o msidbCustomActionTypeContinue (+64).

Si noti che un'installazione padre non può chiamare il proprio pacchetto come azione di installazione simultanea.

Si noti che se un'installazione per computer tenta di eseguire un'installazione simultanea per utente, il programma di installazione registra l'installazione padre come per utente per impostazione predefinita. Ciò può causare la rimozione errata dell'applicazione dal programma di installazione perché il programma di installazione tenta di disinstallare l'applicazione per computer quando viene effettivamente registrato come per utente. Per forzare lo stato di un'installazione simultanea per tenere traccia dello stato dell'installazione padre, immettere ALLUSERS="[ALLUSERS]" nella colonna Target della tabella CustomAction. In questo caso, l'installazione simultanea è per computer se l'elemento padre è per computer e l'installazione simultanea è per utente se l'elemento padre è per utente.

Gli sviluppatori devono notare gli avvisi seguenti quando si creano installazioni simultanee.

  • Le installazioni simultanee non possono condividere i componenti.
  • Un'installazione amministrativa non può contenere anche un'installazione simultanea.
  • L'applicazione di patch e l'aggiornamento potrebbero non funzionare con installazioni simultanee.
  • Il programma di installazione potrebbe non costare correttamente un'installazione simultanea.
  • Non è possibile usare ProgressBar integrati con installazioni simultanee.
  • Le risorse che devono essere annunciate non possono essere installate dall'installazione simultanea.
  • Un pacchetto che esegue un'installazione simultanea di un'applicazione deve anche disinstallare l'applicazione simultanea quando il prodotto padre viene disinstallato.

Per impedire l'installazione di un pacchetto come installazione simultanea, aggiungere una delle istruzioni condizionali seguenti alla tabella LaunchCondition . Ciò impedisce l'installazione del pacchetto da parte di un'azione di installazione simultanea eseguita da un'altra installazione. Ciò non impedisce che il pacchetto venga rimosso dall'azione RemoveExistingProducts . Vedere anche la proprietà ParentOriginalDatabase e la proprietà ParentProductCode .

"Not ParentProductCode"
"Not ParentOriginalDatabase"