Crear secuencias de comandos previas y posteriores al procesamiento
Puede crear una secuencia de comandos para realizar acciones cuando se implementa una aplicación y, a continuación, definir en qué momento se ejecutará durante el proceso de implementación. Puede incluir tanto código de limpieza como código de instalación en la misma secuencia de comandos si utiliza variables de entorno para delimitar el código. También puede pasar argumentos de línea de comandos a la secuencia.
Precaución
Siempre debería escribir en modo silencioso las secuencias de comandos orientadas a los sistemas de producción. Esto se debe a que las secuencias de comandos que esperan la entrada del usuario provocarán que las bases de datos de BizTalk se bloqueen y permanezcan inaccesibles hasta que se reciba la entrada.
Especificar en qué momento se ejecutará una secuencia de comandos durante la implementación
Especifique en qué momento se ejecutará una secuencia de comandos cuando agregue la secuencia a una aplicación agregándola como System.BizTalk:PreProcessingScript (secuencia de comandos previa al procesamiento) o como System.BizTalk:PostProcessingScript (secuencia de comandos posterior al procesamiento).
Las secuencias de comandos previas y posteriores al procesamiento se ejecutan de la siguiente forma:
Las secuencias de comandos previas al procesamiento se ejecutan al principio del proceso de importación o de instalación.
Las secuencias de comandos posteriores al procesamiento se ejecutan al final del proceso de importación o de instalación.
Durante la desinstalación, todas las secuencias se ejecutan en el orden inverso al que se ejecutan durante la instalación. Por lo tanto, las secuencias de comandos posteriores al procesamiento se ejecutan al principio del proceso de desinstalación y las secuencias de comandos previas al procesamiento lo hacen al final.
Si se produce un error en la instalación, se llama a las secuencias de comandos en el orden inverso con la acción adecuada para deshacer.
Una vez invocado, un script previo o posterior al procesamiento determina qué estado de implementación (instalar, importar, eliminar, desinstalar, revertir o revertir la instalación) se ejecuta comprobando las variables de entorno BTAD_ChangeRequestAction, BTAD_InstallMode y BTAD_HostClass, tal y como se describe en Cómo las variables de entorno indican el estado de implementación. Para obtener información de referencia sobre las variables, consulte Variables de entorno de script anteriores y posteriores al procesamiento.
Para obtener instrucciones sobre cómo agregar un script a una aplicación, consulte Cómo agregar un script previo o posterior al procesamiento a una aplicación.
Nota
Si desea incluir argumentos de línea de comandos en una secuencia de comandos, debe utilizar el comando AddResource para agregar la secuencia como se explica más adelante en este tema.
Extensiones de archivos de secuencias de comandos admitidas
Se admiten las siguientes extensiones de archivo de script: .com, .exe, .bat, .cmd, .vbs, .vbe, .js, .jse, .wsf y .wsh. Este conjunto de extensiones se define en la variable de entorno PATHEXT.
Errores de registro
Se recomienda configurar todas las secuencias de comandos para que registren errores en un archivo. Windows Installer no registra los errores que se generan en las secuencias de comandos. Una vez que se ejecute la secuencia de comandos, debería comprobar la existencia de errores que deban solucionarse en estos registros.
Para que le ayude a determinar en qué momento se produce el error, puede incluir la fecha y la hora en el archivo de registro.
Utilice el siguiente código para especificar un archivo de registro y, a continuación, registre un error en él.
Set LogFile=<full path of log file>
…
echo %DATE% %TIME% <text> >> %LogFile%
En el siguiente ejemplo, cuando el token de clave pública no está definido, se realiza una entrada en el archivo de registro especificado. En el archivo de registro, la fecha y la hora aparecen en la misma línea del texto "La clave pública debería estar definida en la secuencia de comandos".
set LogFile=C:\ScriptLog.txt
set PublicKeyToken=e5fd0ea4ecd37420
if not defined PublicKeyToken (
echo %DATE% %TIME% Public key should be set in script >> %LogFile%
También puede agregar la línea exit /b 1
a un script para generar un código de error para Windows Installer, lo que hará que se revierta.
En el siguiente ejemplo, si no se ha definido el token de clave público, la secuencia de comandos devolverá un error a Windows Installer y el instalador se revertirá.
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
Incluir código de limpieza y de instalación en la misma secuencia de comandos
Debido a que las secuencias de comandos se ejecutan en orden inverso durante la instalación y la desinstalación, puede incluir el código de limpieza y de instalación en la misma secuencia de comandos dentro de una instrucción condicional. Por ejemplo, puede colocar el código de instalación dentro de una instrucción condicional que comprueba el modo de instalación de la siguiente forma:
%BTAD_ChangeRequestAction%=Update AND %BTAD_InstallMode%=Install
Puede calificar el código de limpieza dentro de una instrucción condicional que comprueba el modo de instalación de la siguiente forma:
%BTAD_ChangeRequestAction%=Delete AND %BTAD_InstallMode%=Uninstall
Pasar argumentos de línea de comandos
Puede pasar argumentos de línea de comandos a la secuencia de comandos especificando el siguiente parámetro cuando utilice el comando BTSTask AddResource para agregar la secuencia de comandos a la aplicación. Cuando lo haga, los argumentos pasan a la secuencia de comandos cuando ésta se invoca.
/Property:Args="argument list"
Nota
Si tiene varias secuencias de comandos previas o posteriores al procesamientos en una aplicación, no se ejecutan en un orden determinado.
Importante
No debería utilizar los comandos BTSTask en secuencias de comandos, especialmente los que se ejecutan durante la importación ya que las secuencias de comandos no están dadas de alta en la misma transacción como importación.
Para obtener instrucciones sobre cómo usar el comando AddResource para agregar un script a una aplicación, vea AddResource Command: Preprocessing Script. Consulte también AddResource Command: Postprocessing Script
Consulte también
Uso de scripts previos y posteriores al procesamiento para personalizar la implementación de la aplicación
Plantilla (ejemplo de implementación de aplicaciones)