Freigeben über


Erstellen von vorab oder nachträglich verarbeiteten Skripts

Sie können ein Skript erstellen, um beim Bereitstellen einer Anwendung Aktionen auszuführen, und dann definieren, wann es im Bereitstellungsprozess ausgeführt werden soll. Ein Skript kann sowohl Installations- als auch Bereinigungscode enthalten. Der Code kann dabei durch Umgebungsvariablen getrennt werden. Außerdem können Sie Befehlszeilenargumente an das Skript übergeben.

Achtung

Sie sollten Skripts, die für Produktionssysteme gedacht sind, immer im automatischen Modus verfassen, da Skripts, die auf eine Benutzereingabe warten, BizTalk-Datenbanken und den Zugriff auf diese sperren, bis die Eingabe eingegangen ist.

Angeben, wann ein Skript bei der Bereitstellung ausgeführt werden soll

Sie legen beim Hinzufügen eines Skripts zu einer Anwendung fest, wann dieses ausgeführt werden soll, indem Sie es entweder als "System.BizTalk:PreProcessingScript" (vorab verarbeitetes Skript) oder als "System.BizTalk:PostProcessingScript" (nachträglich verarbeitetes Skript) hinzufügen.

Vorab und nachträglich verarbeitete Skripts werden wie folgt ausgeführt:

  • Vorab verarbeitete Skripts werden zu Beginn des Import- oder Installationsvorgangs ausgeführt.

  • Nachträglich verarbeitete Skripts werden am Ende des Import- oder Installationsvorgangs ausgeführt.

  • Bei der Deinstallation werden alle bei der Installation ausgeführten Skripts in umgekehrter Reihenfolge ausgeführt. Daher werden nachträglich verarbeitete Skripts zu Beginn des Deinstallationsvorgangs und vorab verarbeitete Skripts am Ende des Deinstallationsvorgangs ausgeführt.

  • Tritt bei der Installation ein Fehler auf, werden die Skripts mit der entsprechenden Rollbackaktion in umgekehrter Reihenfolge aufgerufen.

    Nach dem Aufruf bestimmt ein Vor- oder Nachverarbeitungsskript, welchen Bereitstellungsstatus (Installieren, Importieren, Löschen, Deinstallieren, Importrollback oder Installationsrollback) ausgeführt wird, indem es die Umgebungsvariablen BTAD_ChangeRequestAction, BTAD_InstallMode und BTAD_HostClass überprüft, wie unter How Environment Variables Indicate Deployment State beschrieben. Referenzinformationen zu den Variablen finden Sie unter Prä- und Postverarbeitung von Skriptumgebungsvariablen.

    Anweisungen zum Hinzufügen eines Skripts zu einer Anwendung finden Sie unter Hinzufügen eines Vor- oder Nachverarbeitungsskripts zu einer Anwendung.

Hinweis

Wenn Sie einem Skript Befehlszeilenargumente hinzufügen möchten (wie weiter unten in diesem Thema erörtert), müssen Sie dem Skript den Befehl "AddResource" hinzufügen.

Unterstützte Dateierweiterungen

Die folgenden Skriptdateierweiterungen werden unterstützt: .com, .exe, .bat, .cmd, .vbs, .vbe, .js, .jse, .wsf und .wsh. Dieser Erweiterungssatz ist in der Umgebungsvariablen PATHEXT definiert.

Protokollieren von Fehlern

Es wird empfohlen, bei der Konfiguration jedes Skripts die Protokollierung von Fehlern vorzusehen, da der Windows Installer in den Skripts generierte Fehler nicht protokolliert. Sie sollten diese Protokolle nach der Ausführung der Skripts auf Fehler überprüfen, die noch nicht behoben wurden.

Sie können der Protokolldatei das Datum und die Uhrzeit hinzufügen, um zu ermitteln, wann der Fehler aufgetreten ist.

Verwenden Sie den folgenden Code, um eine Protokolldatei anzugeben, und protokollieren Sie anschließend einen Fehler in dieser.

Set LogFile=<full path of log file>

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

Wenn das öffentliche Schlüsseltoken nicht definiert ist, wird im folgenden Beispiel ein Eintrag in der angegebenen Protokolldatei gemacht. Das Datum wird in der Protokolldatei in die gleiche Zeile geschrieben wie der Text "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%

Sie können die Zeile exit /b 1 auch einem Skript hinzufügen, um einen Fehlercode für Windows Installer zu generieren, wodurch ein Rollback ausgeführt wird.

Wenn das öffentliche Schlüsseltoken nicht definiert wurde, gibt das Skript im folgenden Beispiel einen Fehler an Windows Installer zurück, und für den Installer wird ein Rollback durchgeführt.

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

Hinzufügen von Installations- und Bereinigungscode im gleichen Skript

Da Skripts bei der Installation und Deinstallation in umgekehrter Reihenfolge ausgeführt werden, können Sie im gleichen Skript Installations- und Bereinigungscode aufnehmen. Dieser muss in einer bedingten Anweisung enthalten sein. Sie können den Installationscode beispielsweise in einer bedingten Anweisung eingeben, die den Installationsmodus folgendermaßen überprüft:

  
%BTAD_ChangeRequestAction%=Update AND %BTAD_InstallMode%=Install  
  

Sie können Bereinigungscode in einer bedingten Anweisung qualifizieren, die den Installationsmodus folgendermaßen überprüft:

  
%BTAD_ChangeRequestAction%=Delete AND %BTAD_InstallMode%=Uninstall  
  

Übergeben von Befehlszeilenargumenten

Sie können Befehlszeilenargumente an das Skript übergeben, indem Sie beim Hinzufügen des Skripts zur Anwendung mit dem BTSTask-Befehl "AddResource" den folgenden Parameter angeben. In diesem Fall werden die Argumente beim Aufrufen des Skripts an dieses übergeben.

/Property:Args="argument list"

Hinweis

Wenn eine Anwendung mehrere vorab und nachträglich verarbeitete Skripts enthält, wird beim Ausführen dieser keine bestimmte Reihenfolge eingehalten.

Wichtig

Sie sollten BTSTask-Befehle nicht in Skripts verwenden, vor allem nicht in solchen, die beim Importieren ausgeführt werden, da Skripts nicht in der gleichen Transaktion wie ein Import eingetragen sind.

Anweisungen zur Verwendung des AddResource-Befehls zum Hinzufügen eines Skripts zu einer Anwendung finden Sie unter AddResource Command: Preprocessing Script. Siehe auch AddResource-Befehl: Postprocessing Script

Weitere Informationen

Verwenden von vorab und nachträglich verarbeiteten Skripts zur Anpassung der Anwendungsbereitstellung
Vorlage (Beispiel für die Anwendungsbereitstellung)