Sequenziazione di azioni personalizzate
Le azioni personalizzate vengono pianificate nelle tabelle della sequenza nello stesso modo delle azioni standard.
Per pianificare un'azione personalizzata in una tabella di sequenza
- Immettere il nome dell'azione personalizzato (ovvero la chiave primaria della tabella CustomAction) nella colonna Action della tabella Sequence .
- Immettere la sequenza di azioni personalizzate rispetto alle altre azioni della tabella nella colonna Sequenza della tabella Sequence. Per altre informazioni sulle tabelle della sequenza, vedere Uso di una tabella sequenza.
- Per ignorare in modo condizionale l'azione, immettere un'espressione condizionale nella colonna Condizione della tabella Sequence . Il programma di installazione ignora questa azione se l'espressione restituisce FALSE.
Come nel caso delle azioni standard, le azioni personalizzate pianificate in InstallUISequence o AdminUISequence vengono eseguite solo se l'interfaccia utente interna è impostata sul livello completo. Il livello dell'interfaccia utente viene impostato usando la funzione MsiSetInternalUI .
Le azioni standard e personalizzate pianificate nelle tabelle InstallExecuteSequence, AdminExecuteSequence o AdvtExecuteSequence non apportano modifiche di sistema. Al contrario, il programma di installazione accoda i record di esecuzione in uno script per l'esecuzione successiva durante il servizio di installazione. Se non esiste un servizio di installazione, le azioni pianificate in queste tabelle vengono eseguite nello stesso contesto della sequenza di interfaccia utente.
Se il server di installazione non è registrato, le azioni personalizzate vengono eseguite sul lato client. Se il server è registrato e usa la modalità interfaccia utente completa, le azioni personalizzate vengono eseguite sul lato server.
Se si usa l'interfaccia utente completa con il server, le azioni iniziali precedenti all'azione InstallValidate vengono eseguite nel client per consentire l'interazione completa. L'esecuzione viene quindi passata al server che ripete tali azioni ed esegue le azioni di esecuzione dello script. Viene seguito da un ritorno al client per le azioni finali.
Si noti che se un prodotto viene rimosso impostando la funzionalità superiore su assente, la proprietà REMOVE potrebbe non essere uguale a ALL finché non dopo l'azione InstallValidate . Ciò significa che qualsiasi azione personalizzata che dipende da REMOVE=ALL deve essere sequenziata dopo l'azione InstallValidate. Un'azione personalizzata può controllare REMOVE per determinare se un prodotto è stato impostato per essere completamente disinstallato.
Azioni personalizzate che fanno riferimento a un file installato come origine, ad esempio Custom Action Type 17 (DLL), Custom Action Type 18 (EXE), Custom Action Type 21 (JScript) e Custom Action Type 22 (VBScript), devono rispettare le restrizioni di sequenziazione seguenti.
- L'azione personalizzata deve essere sequenziata dopo l'azione CostFinalize in modo che sia possibile risolvere il percorso del file a cui si fa riferimento.
- Se il file di origine non è già installato nel computer, le azioni personalizzate posticipate (in-script) devono essere sequenziate dopo installFiles.
- Se il file di origine non è già installato nel computer, le azioni personalizzate non posticipate devono essere sequenziate dopo l'azione InstallInitialize .
Le restrizioni di sequenziazione seguenti si applicano alle azioni personalizzate che cambiano o aggiornano un pacchetto di Windows Installer.
- Se l'azione personalizzata modifica il pacchetto, ad esempio aggiungendo righe a una tabella, l'azione deve essere sequenzata prima dell'azione InstallInitialize .
- Se l'azione personalizzata apporta modifiche che influiscono sul costo, deve essere sequenzata prima dell'azione CostInitialize .
- Se l'azione personalizzata modifica lo stato di installazione delle funzionalità o dei componenti, deve essere sequenziata prima dell'azione InstallValidate .