Ottenere informazioni contestuali per azioni personalizzate di esecuzione differita
Poiché lo script di installazione può essere eseguito all'esterno della sessione di installazione in cui è stato scritto, la sessione potrebbe non esistere più durante l'esecuzione dello script di installazione. In questo caso, l'handle di sessione originale e le proprietà impostati durante la sequenza di installazione non sono disponibili per un'azione personalizzata di esecuzione posticipata. Tutte le funzioni che richiedono un handle di sessione sono limitate a pochi metodi in grado di recuperare le informazioni di contesto oppure le proprietà necessarie durante l'esecuzione dello script devono essere scritte nello script di installazione. Ad esempio, le azioni personalizzate posticipate che chiamano le librerie a collegamento dinamico (DLL) passano un handle che può essere usato solo per ottenere una quantità molto limitata di informazioni. Le funzioni che non richiedono un handle di sessione possono essere accessibili da un'azione personalizzata posticipata.
Le azioni personalizzate di esecuzione posticipata sono limitate alla chiamata solo alle funzioni seguenti che richiedono un handle.
Funzione | Descrizione |
---|---|
MsiGetProperty | Supporta un set limitato di proprietà quando viene usato con azioni personalizzate di esecuzione posticipata: la proprietà CustomActionData, proprietà ProductCode e proprietà UserSID.Eseguire il commit di azioni personalizzate non può usare la funzionemsiGetPropertyper ottenere la proprietàProductCode. Le azioni di commit personalizzate possono usare la proprietà CustomActionData per ottenere il codice prodotto. |
MsiFormatRecord | Supporta un set limitato di proprietà quando viene usato con azioni personalizzate di esecuzione posticipata: le proprietà CustomActionData e ProductCode. |
MsiGetMode | Quando viene chiamato dalle azioni personalizzate di esecuzione differita , dalle azioni personalizzate di commit o dalle azioni personalizzate di rollback , MsiGetMode restituisce Vero o Falso quando richiesto di verificare i parametri della modalità MSIRUNMODE_SCHEDULED, MSIRUNMODE_COMMIT o MSIRUNMODE_ROLLBACK. Le richieste di controllo di qualsiasi altro parametro della modalità di esecuzione da un'azione personalizzata differita, di commit, o di rollback restituiscono False. |
MsiGetLanguage | ID lingua numerica per il prodotto corrente.Eseguire il commit di azioni personalizzate non può usare la funzionemsiGetLanguage. Le azioni personalizzate di commit possono utilizzare la proprietà CustomActionData per ottenere l'ID lingua numerica. |
MsiProcessMessage | Elabora messaggi di errore o di progresso dall'azione personalizzata. |
Un'azione personalizzata scritta in JScript o VBScript richiede l'installazione oggetto Session. Si tratta del tipo Session Object e il programma di installazione lo collega allo script con il nome "Session". Poiché l'oggetto sessione di potrebbe non esistere durante un rollback dell'installazione, un'azione personalizzata posticipata scritta nello script deve utilizzare uno dei metodi o delle proprietà seguenti dell'oggetto Session per recuperarne il contesto.
Nome | Descrizione |
---|---|
Modalità Proprietà | Restituisce True solo per MSIRUNMODE_SCHEDULED. |
proprietà proprietà (Oggetto Sessione) | Restituisce la proprietà CustomActionData, la proprietà ProductCode, o la proprietà UserSID. |
proprietà Language (oggetto di sessione) | Restituisce l'ID lingua numerica della sessione di installazione. |
Metodo Messaggio | Chiamato per gestire gli errori e l'avanzamento. |
Installer proprietà | Restituisce l'oggetto padre, utilizzato per funzioni non di sessione, ad esempio l'accesso al Registro di sistema e la gestione della configurazione del programma di installazione. |
I valori delle proprietà impostati al momento dell'elaborazione della sequenza di installazione nello script potrebbero non essere disponibili al momento dell'esecuzione dello script. Solo il set limitato di proprietà seguente è sempre accessibile alle azioni personalizzate durante l'esecuzione dello script.
Nome della proprietà | Descrizione |
---|---|
CustomActionData | Valore al momento dell'elaborazione dell'azione personalizzata nella tabella di sequenza. La proprietà CustomActionData è disponibile solo per azioni personalizzate di esecuzione posticipata. Le azioni personalizzate immediate non hanno accesso a questa proprietà. |
ProductCode | Codice univoco per il prodotto, una stringa GUID . |
UserSID | Impostato dal programma di installazione sull'identificatore di sicurezza (SID) dell'utente. |
Se altri dati delle proprietà sono richiesti dall'azione personalizzata per l'esecuzione posticipata, i relativi valori devono essere archiviati nello script di installazione. Questa operazione può essere eseguita usando una seconda azione personalizzata.
Per scrivere il valore di una proprietà nello script di installazione da utilizzare durante un'azione personalizzata di esecuzione posticipata
- Inserire una piccola azione personalizzata nella sequenza di installazione che assegna alla proprietà desiderata un valore che abbia lo stesso nome dell'azione personalizzata di esecuzione posticipata. Ad esempio, se la chiave primaria per l'azione personalizzata per l'esecuzione posticipata è "MyAction" impostare una proprietà denominata "MyAction" sulla proprietà X che è necessario recuperare. È necessario impostare la proprietà "MyAction" nella sequenza di installazione prima dell'azione personalizzata "MyAction". Anche se qualsiasi tipo di azione personalizzata può impostare i dati di contesto, il metodo più semplice consiste nell'usare un'azione personalizzata di assegnazione di proprietà, ad esempio tipo di azione personalizzata 51).
- Al momento dell'elaborazione della sequenza di installazione, il programma di installazione scriverà il valore della proprietà X nello script di esecuzione come valore della proprietà CustomActionData.
Argomenti correlati