Condividi tramite


Sequenziazione di azioni personalizzate

Le azioni personalizzate vengono pianificate nelle tabelle di sequenza nello stesso modo delle azioni standard.

Per pianificare un'azione personalizzata in una tabella di sequenza

  1. Immettere il nome dell'azione personalizzata (ovvero la chiave primaria della tabella CustomAction) nella colonna Azione della tabella Sequenza.
  2. Immettere la sequenza dell'azione personalizzata rispetto alle altre azioni della tabella nella colonna Sequenza della tabella Sequenza. Per altre informazioni sulle tabelle di sequenza, vedere Uso di una tabella sequenza.
  3. Per ignorare l'azione in modo condizionale, immettere un'espressione condizionale nella colonna Condizione della tabella Sequenza . Il programma di installazione ignora questa azione se l'espressione restituisce FALSE.

Come nel caso delle azioni standard, le azioni personalizzate pianificate nel InstallUISequence o AdminUISequence vengono eseguite solo se l'interfaccia utente interna è impostata sul livello completo. Il livello dell'interfaccia utente viene impostato usando la funzionemsiSetInternalUI.

Le azioni standard e personalizzate pianificate nell'InstallExecuteSequence, AdminExecuteSequenceo AdvtExecuteSequence tabelle non apportano modifiche al sistema. Invece, il programma di installazione accoda i record di esecuzione in uno script per una successiva esecuzione durante il servizio di installazione. Se non è presente alcun servizio di installazione, le azioni pianificate in queste tabelle vengono eseguite nello stesso contesto della sequenza dell'interfaccia utente.

Se il server del programma di installazione non è registrato, le azioni personalizzate vengono eseguite sul lato client. Se il server è registrato e usa la modalità completa dell'interfaccia utente, le azioni personalizzate vengono eseguite sul lato server.

Se si utilizza l'interfaccia utente completa con il server, le azioni iniziali vengono eseguite nel client prima dell'azione InstallValidate per consentire un'interazione completa. L'esecuzione viene quindi passata al server che ripete tali azioni ed esegue le azioni di esecuzione dello script. Questo è 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 fino a quando non viene eseguita 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.

Le 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 il percorso del file a cui si fa riferimento possa essere risolto.
  • Se il file di origine non è già installato nel computer, le azioni personalizzate posticipate (in-script) devono essere sequenziate dopo il InstallFiles.
  • Se il file di origine non è già installato nel computer, le azioni personalizzate non dedotte devono essere sequenziate dopo l'azione InstallInitialize.

Le restrizioni di sequenziazione seguenti si applicano alle azioni personalizzate che modificano 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 sequenziata prima dell'azione InstallInitialize.
  • Se l'azione personalizzata apporta modifiche che influiscono sui costi, deve essere sequenziata 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.