Recupero di informazioni sul contesto per azioni personalizzate per l'esecuzione posticipata

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 alcuni metodi in grado di recuperare le informazioni di contesto o altre proprietà necessarie durante l'esecuzione dello script devono essere scritte nello script di installazione. Ad esempio, le azioni personalizzate posticipate che chiamano dll (Dynamic Link Librarie) 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, la proprietà ProductCode e la proprietà UserSID . Il commit di azioni personalizzate non può usare la funzione MsiGetProperty per ottenere la proprietà ProductCode . Eseguire il commit di azioni personalizzate può utilizzare 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 da azioni personalizzate di esecuzione posticipata, eseguire il commit di azioni personalizzate o eseguire il rollback di azioni personalizzate, MsiGetMode restituisce True o False quando richiesto di controllare i parametri della modalità MSIRUNMODE_SCHEDULED, MSIRUNMODE_COMMIT o MSIRUNMODE_ROLLBACK. Le richieste di controllare qualsiasi altro parametro della modalità di esecuzione da un'azione personalizzata posticipata, commit o rollback restituisce False.
MsiGetLanguage ID lingua numerica per il prodotto corrente. Il commit di azioni personalizzate non può usare la funzione MsiGetLanguage . Eseguire il commit di azioni personalizzate può utilizzare la proprietà CustomActionData per ottenere l'ID lingua numerica.
MsiProcessMessage Elabora i messaggi di errore o di avanzamento dall'azione personalizzata.

 

Un'azione personalizzata scritta in JScript o VBScript richiede l'oggetto Session di installazione. Si tratta del tipo Session Object e il programma di installazione lo collega allo script con il nome "Session". Poiché l'oggetto Session 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 recuperare il contesto.

Nome Descrizione
Proprietà Mode Restituisce True solo per MSIRUNMODE_SCHEDULED.
Proprietà Property (oggetto Session) Restituisce la proprietà CustomActionData, la proprietà ProductCode o la proprietà UserSID .
Proprietà Language (oggetto Session) Restituisce l'ID lingua numerica della sessione di installazione.
Message, metodo Chiamato per gestire gli errori e lo stato di avanzamento.
Installer, proprietà Restituisce l'oggetto padre, utilizzato per le 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 proprietà Descrizione
Customactiondata Il valore in fase di elaborazione dell'azione personalizzata viene elaborato nella tabella della sequenza. La proprietà CustomActionData è disponibile solo per le 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 Impostare dal programma di installazione sull'identificatore di sicurezza (SID) dell'utente.

 

Se altri dati di proprietà sono richiesti dall'azione personalizzata di 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 usare durante un'azione personalizzata di esecuzione posticipata

  1. Inserire una piccola azione personalizzata nella sequenza di installazione che imposta la proprietà di interesse su una proprietà con lo stesso nome dell'azione personalizzata di esecuzione posticipata. Ad esempio, se la chiave primaria per l'azione personalizzata di 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 il tipo di azione personalizzata 51.
  2. 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.

Informazioni sulle proprietà

Utilizzo delle proprietà

Informazioni di riferimento sulle proprietà