Condividi tramite


Creazione di uno script di pre-elaborazione o post-elaborazione

È possibile creare uno script per eseguire azioni quando un'applicazione viene distribuita e quindi definire quando verrà eseguita durante il processo di distribuzione. È possibile includere sia il codice di installazione che quello di pulizia nello stesso script, usando le variabili di ambiente per delimitare il codice. È anche possibile passare gli argomenti della riga di comando allo script.

Attenzione

È consigliabile scrivere sempre script destinati ai sistemi di produzione in modalità invisibile all'utente. Ciò è dovuto al fatto che uno script in attesa dell'input dell'utente causerà il blocco e l'inaccessibilità dei database BizTalk fino alla ricezione dell'input.

Specifica di quando verrà eseguito uno script durante la distribuzione

Si specifica quando verrà eseguito uno script quando si aggiunge lo script a un'applicazione aggiungendolo come System.BizTalk:PreProcessingScript (script di pre-elaborazione) o System.BizTalk:PostProcessingScript (script di post-elaborazione).

Gli script di pre-elaborazione e post-elaborazione vengono eseguiti come segue:

  • Gli script di pre-elaborazione vengono eseguiti all'inizio del processo di importazione o installazione.

  • Gli script di post-elaborazione vengono eseguiti alla fine del processo di importazione o installazione.

  • Durante la disinstallazione, tutti gli script vengono eseguiti nell'ordine opposto in cui vengono eseguiti durante l'installazione. Pertanto, gli script di post-elaborazione vengono eseguiti all'inizio della disinstallazione e degli script di pre-elaborazione alla fine della 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 quale stato di distribuzione (installare, importare, eliminare, disinstallare, importare o installare il rollback) in cui viene eseguito 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.

Annotazioni

Se si desidera includere argomenti della riga di comando in uno script, come descritto più avanti in questo argomento, è necessario usare il comando AddResource per aggiungere lo script.

Estensioni di file di script supportate

Sono supportate le estensioni di file di script seguenti: .com, .exe, .bat, .cmd, vbs, vbe, .js, jse, wsf e wsh. Questo set di estensioni viene definito nella variabile di ambiente PATHEXT.

Errori di registrazione

Come procedura consigliata, è consigliabile configurare ogni script per registrare gli errori in un file. Ciò è dovuto al fatto che Windows Installer non registra gli errori generati negli script. È consigliabile controllare questi log dopo l'esecuzione dello script per eventuali errori che devono essere risolti.

Per determinare quando si è verificato l'errore, è possibile includere la data e l'ora nel file di log.

Usare il codice seguente per specificare un file di log e quindi registrare un errore.

Set LogFile=<full path of log file>

echo %DATE% %TIME% <text> >> %LogFile%

Nell'esempio seguente, quando il token di chiave pubblica non è definito, viene registrata una voce nel file di registro specificato. Nel file di log la data e l'ora sono scritte nella stessa riga del testo , "La chiave pubblica deve essere impostata nello 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 e il programma di installazione 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 nell'ordine opposto durante l'installazione e la disinstallazione, è possibile includere il codice di installazione e 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 indicato di seguito:

  
%BTAD_ChangeRequestAction%=Update AND %BTAD_InstallMode%=Install  
  

È possibile qualificare il codice di pulizia all'interno di un'istruzione condizionale che verifica la modalità di installazione, come indicato di seguito:

  
%BTAD_ChangeRequestAction%=Delete AND %BTAD_InstallMode%=Uninstall  
  

Passaggio di argomenti della riga di comando

È possibile passare gli argomenti della riga di comando nello script specificando il parametro seguente quando si usa il comando BTSTask AddResource per aggiungere lo script all'applicazione. Quando si esegue questa operazione, gli argomenti vengono passati allo script quando viene richiamato lo script.

/Property:Args="argument list"

Annotazioni

Se sono presenti più script di pre-elaborazione o post-elaborazione in un'applicazione, vengono eseguiti in un ordine qualunque.

Importante

Non è consigliabile usare i comandi BTSTask negli script, in particolare quelli eseguiti durante l'importazione, perché gli script non sono inclusi nella stessa transazione di un'importazione.

Per istruzioni sull'uso del comando AddResource per aggiungere uno script a un'applicazione, vedere Comando AddResource: Script di pre-elaborazione. Si veda anche Comando AddResource: Script di post elaborazione

Vedere anche

Uso di script di pre-elaborazione e post-elaborazione per personalizzare la distribuzione dell'applicazione
Modello (esempio di distribuzione dell'applicazione)