Installazioni simultanee
Installazioni simultanee, dette anche installazioni annidate, è una funzionalità deprecata di Windows Installer. Le applicazioni installate con installazioni simultanee possono avere esito negativo perché sono difficili da gestire correttamente per i clienti. 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 non destinate al rilascio pubblico. La documentazione sulle installazioni simultanee viene fornita per gli autori di pacchetti che desiderano usare installazioni simultanee con applicazioni non destinate alla 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 di sequenza. Il campo Destinazione della tabella CustomAction contiene una stringa di impostazioni delle proprietà pubbliche utilizzate dall'installazione simultanea. Il campo Origine della tabella CustomAction identifica il pacchetto simultaneo. Un'azione di installazione simultanea può reinstallare o rimuovere solo 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 personalizzata, il pacchetto per l'applicazione simultanea può risiedere in una sottostorazione del pacchetto principale, come file in un percorso specificato da una proprietà o come applicazione pubblicizzata nel computer dell'utente. I tipi seguenti di azioni personalizzate eseguono un'installazione simultanea.
Tipo di azione personalizzato | Descrizione |
---|---|
tipo di azione personalizzata 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 programma di installazione annunciato. |
Un'installazione simultanea condivide le stesse impostazioni di interfaccia utente e registrazione dell'installazione principale.
Le azioni di installazione simultanee devono essere inserite tra l'azione InstallInitialize e 'azione InstallFinalize della sequenza di azione dell'installazione principale. Dopo il rollback dell'installazione principale, il programma di installazione eseguirà il rollback anche dell'installazione simultanea. L'uso di '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 annullate durante un'installazione di rollback.
I valori restituiti per le azioni di installazione simultanee sono uguali a per altre azioni personalizzate. Vedere valori restituiti dell'azione personalizzata.
Le 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 aver avviato un'installazione simultanea, il programma di installazione 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 azioni personalizzate 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 in cui si usa MsiInstallProduct per una normale installazione. Per specificare il tipo di installazione, passare la proprietàADDLOCAL, ADDSOURCE, REINSTALLo REMOVE all'azione di installazione simultanea.
Le azioni di installazione simultanee possono essere create in coppia, un'azione usata per l'installazione e l'altra azione usata per rimuovere l'installazione simultanea. Un tipo di azione personalizzato 7 o tipo di azione personalizzata 23 viene in genere usato per l'installazione. 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 Destinazione. Le due azioni personalizzate devono essere create nella tabella della sequenza di azioni con condizioni che si escludono a vicenda. Ad esempio, l'azione personalizzata che installa il prodotto può avere "NOT Installed" nel relativo campo Condizione 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 un'installazione simultanea. Le righe devono essere aggiunte alla tabella ReserveCost per indicare le cartelle e i costi peggiori del componente associato all'installazione simultanea.
L'unico opzioni di elaborazione restituite azioni personalizzate disponibili con le azioni di installazione simultanee non è presente (+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 non corretta 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 durante la creazione di 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 ProgressBars 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 evitare che un pacchetto venga mai installato come installazione simultanea, aggiungere una delle istruzioni condizionali seguenti alla tabella LaunchCondition. In questo modo il pacchetto non viene mai installato da 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àParentOriginalDatabasee la proprietàParentProductCode.
"Not ParentProductCode"
"Not ParentOriginalDatabase"