Création d'un script de pré-traitement ou de post-traitement
Vous pouvez créer un script qui effectue des opérations lors du déploiement d'une application, puis définir le moment où ce script doit être exécuté durant le processus. Vous pouvez insérer le code d'installation et le code de nettoyage dans le même script en vous servant des variables d'environnement pour délimiter le code. Il est également possible de passer des arguments en ligne de commande au script.
Attention
Écrivez toujours les scripts destinés à des systèmes de production en mode silencieux. En effet, lorsque le script est en attente de données, les bases de données BizTalk se verrouillent et ne sont plus accessibles tant que l'utilisateur n'a pas entré les données requises.
Spécification du moment d'exécution d'un script lors du déploiement
Vous indiquez le moment où le script doit être exécuté lorsque vous ajoutez le script à une application, soit en tant que System.BizTalk:PreProcessingScript (script de pré-traitement), soit en tant que System.BizTalk:PostProcessingScript (script de post-traitement).
Les scripts de pré-traitement et de post-traitement s'exécutent comme suit :
Les scripts de pré-traitement s'exécutent au début du processus d'importation ou d'installation.
Les scripts de post-traitement s'exécutent à la fin du processus d'importation ou d'installation.
Lors d'une désinstallation, tous les scripts s'exécutent dans l'ordre inverse à celui dans lequel ils s'exécutent lors d'une installation. Par conséquent, les scripts de post-traitement s'exécutent au début du processus de désinstallation et les scripts de pré-traitement, à la fin.
Si une installation échoue, les scripts sont appelés dans l'ordre inverse, en suivant l'action d'annulation appropriée.
Une fois appelé, un script de prétraitement ou de post-traitement détermine l’état de déploiement (installer, importer, supprimer, désinstaller, restaurer ou restaurer l’installation) dans lequel il s’exécute en vérifiant les variables d’environnement BTAD_ChangeRequestAction, BTAD_InstallMode et BTAD_HostClass, comme décrit dans Comment les variables d’environnement indiquent l’état du déploiement. Pour obtenir des informations de référence sur les variables, consultez Variables d’environnement de script de prétraitement et de post-traitement.
Pour obtenir des instructions sur l’ajout d’un script à une application, consultez Comment ajouter un script de prétraitement ou de post-traitement à une application.
Notes
Si vous souhaitez insérer des arguments en ligne de commande à un script, comme mentionné plus loin dans cette rubrique, vous devez utiliser la commande AddResource lorsque vous ajoutez le script.
Extensions de fichier de script prises en charge
Les extensions de fichier de script suivantes sont prises en charge : .com, .exe, .bat, .cmd, .vbs, .vbe, .js, .jse, .wsf et .wsh. Cet ensemble d'extensions est défini dans la variable d'environnement PATHEXT.
Consignation des erreurs
Il est recommandé de configurer chaque script de sorte qu'il consigne les erreurs dans un fichier. En effet, Windows Installer ne consigne pas les erreurs éventuellement générées dans les scripts. Une fois le script exécuté, vérifiez que les fichiers journaux ne contiennent pas d'erreurs nécessitant votre intervention.
Pour pouvoir déterminer plus facilement le moment où l'erreur s'est produite, vous pouvez inclure la date et l'heure dans le fichier journal.
Utilisez le code suivant pour spécifier un fichier journal et y consigner les erreurs.
Set LogFile=<full path of log file>
…
echo %DATE% %TIME% <text> >> %LogFile%
Dans l'exemple suivant, une entrée est créée dans le fichier journal spécifié lorsque le jeton de clé publique n'est pas défini. Dans ce fichier journal, la date et l'heure sont écrits sur la même ligne, comme indiqué dans la ligne de code « Public key should be set in script » ci-dessous.
set LogFile=C:\ScriptLog.txt
set PublicKeyToken=e5fd0ea4ecd37420
if not defined PublicKeyToken (
echo %DATE% %TIME% Public key should be set in script >> %LogFile%
Vous pouvez également ajouter la ligne exit /b 1
à un script pour générer un code d’erreur pour Windows Installer, ce qui entraînera une restauration.
Dans l'exemple suivant, le script signale une erreur à Windows Installer si le jeton de clé publique n'a pas été défini.
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
Insertion du code d'installation et du code de nettoyage dans le même script
Étant donné que les scripts s'exécutent dans l'ordre inverse selon qu'il s'agit d'une installation ou d'une désinstallation, vous pouvez inclure un code d'installation et un code de nettoyage dans le même script, dans une instruction conditionnelle. Par exemple, vous pouvez placer le code d'installation dans une instruction conditionnelle qui vérifie le mode d'installation comme suit :
%BTAD_ChangeRequestAction%=Update AND %BTAD_InstallMode%=Install
Vous pouvez qualifier le code de nettoyage dans une instruction conditionnelle qui vérifie le mode d'installation comme suit :
%BTAD_ChangeRequestAction%=Delete AND %BTAD_InstallMode%=Uninstall
Passage d'arguments en ligne de commande
Pour passer des arguments en ligne de commande au script, spécifiez le paramètre décrit ci-après lorsque vous ajoutez le script à l'application à l'aide de la commande BTSTask AddResource. Cela fait, les arguments sont passés au script lorsque ce dernier est invoqué.
/Property :Args="argument list »
Notes
Lorsque vous avez plusieurs scripts de pré-traitement et de post-traitement dans une application, ils sont exécutés sans respecter d'ordre particulier.
Important
N'utilisez pas de commandes BTSTask dans les scripts, surtout dans les scripts qui s'exécutent lors de l'importation car ces scripts ne sont pas inscrits dans la même transaction qu'une importation.
Pour obtenir des instructions sur l’utilisation de la commande AddResource pour ajouter un script à une application, consultez Commande AddResource : script de prétraitement. Consultez également AddResource Command : Postprocessing Script
Voir aussi
Utilisation des scripts de prétraitement et de post-traitement pour personnaliser le déploiement de l’application
Modèle (exemple de déploiement d’applications)