Creazione di script di preelaborazione e postelaborazione
È possibile creare uno script per eseguire azioni durante la distribuzione di un'applicazione e definirne quindi l'esecuzione durante il processo di distribuzione. È possibile includere codice di installazione e di pulizia nello stesso script, utilizzando variabili di ambiente per delimitare il codice. È inoltre possibile passare argomenti della riga di comando nello script.
Attenzione
È sempre opportuno scrivere script destinati al sistema di produzione in modalità invisibile all'utente, perché uno script in attesa dell'input dell'utente causerebbe il blocco e l'inaccessibilità del database BizTalk fino al momento in cui viene ricevuto l'input.
Specifica dell'esecuzione di uno script durante la distribuzione
È possibile specificare quando debba essere eseguito uno script quando lo si aggiunge a un'applicazione aggiungendolo come System.BizTalk:PreProcessingScript (script di preelaborazione) o come System.BizTalk:PostProcessingScript (script di postelaborazione).
Gli script di preelaborazione e postelaborazione vengono eseguiti nel modo seguente:
Gli script di preelaborazione vengono eseguiti all'inizio del processo di importazione o di installazione.
Gli script di postelaborazione vengono eseguiti alla fine del processo di importazione o di installazione.
Durante la disinstallazione, tutti gli script vengono eseguiti nell'ordine inverso di esecuzione rispetto all'installazione. Pertanto gli script di postelaborazione vengono eseguiti all'inizio del processo di disinstallazione e gli script di preelaborazione vengono eseguiti alla fine del processo di disinstallazione.
Se un'installazione non riesce, gli script vengono chiamati in ordine inverso con l'azione di rollback appropriata.
Una volta richiamato, uno script di pre-elaborazione o post-elaborazione determina lo stato di distribuzione (installazione, importazione, eliminazione, disinstallazione, rollback dell'importazione o rollback dell'installazione) in esecuzione controllando le variabili di ambiente BTAD_ChangeRequestAction, BTAD_InstallMode e BTAD_HostClass, come descritto in Come le variabili di ambiente indicano lo stato di distribuzione. Per informazioni di riferimento sulle variabili, vedere Variabili di ambiente script di pre-elaborazione e post-elaborazione.
Per istruzioni sull'aggiunta di uno script a un'applicazione, vedere Come aggiungere uno script di pre-elaborazione o post-elaborazione a un'applicazione.
Nota
Se si desidera includere argomenti della riga di comando in uno script, come illustrato più avanti in questo argomento, è necessario utilizzare il comando AddResource per aggiungerli allo script.
Estensioni dei file di script supportate
Sono supportate le estensioni di file di script seguenti: .com, .exe, .bat, cmd, vbs, vbe, .js, jse, wsf e wsh. Questa serie di estensioni è definita nella variabile di ambiente PATHEXT.
Registrazione degli errori
È consigliabile configurare ogni script per la registrazione degli errori in un file. Windows Installer infatti non registra gli errori generati negli script. È opportuno controllare questi registri dopo l'esecuzione dello script per verificare l'esistenza di eventuali errori da risolvere.
Per determinare più facilmente quando si è verificato un errore è possibile includere data e ora nel file di registro.
Per specificare un file di log e registrarvi un errore, utilizzare il codice seguente:
Set LogFile=<full path of log file>
…
echo %DATE% %TIME% <text> >> %LogFile%
Nell'esempio seguente, quando il token di chiave pubblica non è definito, viene creata una voce nel file di registro specificato. Nel file di registro la data e l'ora vengono scritte nella stessa riga del testo "Public key should be set in script".
set LogFile=C:\ScriptLog.txt
set PublicKeyToken=e5fd0ea4ecd37420
if not defined PublicKeyToken (
echo %DATE% %TIME% Public key should be set in script >> %LogFile%
È anche possibile aggiungere la riga exit /b 1
a uno script per generare un codice di errore per Windows Installer, che causerà il rollback.
Nell'esempio seguente, se il token di chiave pubblica non è stato definito, lo script restituirà un errore a Windows Installer che eseguirà il rollback.
set LogFile=C:\ScriptLog.txt
set PublicKeyToken=e5fd0ea4ecd37420
if not defined PublicKeyToken (
echo %DATE% %TIME% Public key should be set in script >> %LogFile%
exit /b 1
Inclusione del codice di installazione e pulizia nello stesso script
Poiché gli script vengono eseguiti in ordine inverso durante l'installazione e la disinstallazione, è possibile includere il codice di installazione e di pulizia nello stesso script, all'interno di un'istruzione condizionale. È ad esempio possibile inserire il codice di installazione all'interno di un'istruzione condizionale che controlla la modalità di installazione, come segue:
%BTAD_ChangeRequestAction%=Update AND %BTAD_InstallMode%=Install
È possibile qualificare il codice di pulizia all'interno di un'istruzione condizionale che controlla la modalità di installazione, come segue:
%BTAD_ChangeRequestAction%=Delete AND %BTAD_InstallMode%=Uninstall
Utilizzo di argomenti della riga di comando
È possibile passare nello script argomenti della riga di comando specificando il parametro seguente quando si utilizza il comando BTSTask AddResource per aggiungere lo script all'applicazione. Quando si esegue questa operazione, gli argomenti vengono passati allo script quando questo viene richiamato.
/Property:Args="argument list"
Nota
Se in un'applicazione sono presenti più script di preelaborazione o postelaborazione, questi vengono eseguiti senza alcun ordine particolare.
Importante
Non utilizzare i comandi BTSTask negli script, specialmente in quelli eseguiti durante l'importazione, perché gli script non sono integrati nella stessa transazione dell'importazione.
Per istruzioni sull'uso del comando AddResource per aggiungere uno script a un'applicazione, vedere Comando AddResource: Script di pre-elaborazione. Vedere anche Comando AddResource: Script post-elaborazione
Vedere anche
Uso di script di pre-elaborazione e post-elaborazione per la personalizzazione della distribuzione di applicazioni
Template (esempio di distribuzione di un'applicazione)