処理前または処理後のスクリプトの作成
アプリケーションの展開時に操作を実行するスクリプトを作成し、展開プロセスのどの時点でそのスクリプトを実行するかを定義できます。 同じスクリプトにインストールとクリーンアップ コードの両方を含めることができます。これらのコードは環境変数を使って区切ります。 コマンドライン引数をスクリプトに渡すこともできます。
注意事項
スクリプトを記述する場合は、常にサイレント モードの運用システムを想定してください。 スクリプトでユーザーからの入力を待機すると、その間 BizTalk データベースがロックされ、入力を受け取るまでアクセスできなくなります。
展開時にスクリプトを実行するタイミングを指定する
スクリプトをアプリケーションに追加するときに、スクリプトを System.BizTalk:PreProcessingScript (処理前のスクリプト) または System.BizTalk:PostProcessingScript (処理後のスクリプト) に追加して、スクリプトを実行するタイミングを指定します。
処理前および処理後のスクリプトは次のように実行されます。
処理前のスクリプトは、インポートまたはインストール プロセスの最初に実行されます。
処理後のスクリプトは、インポートまたはインストール プロセスの最後に実行されます。
アンインストール時、すべてのスクリプトはインストール時と逆の順番で実行されます。 つまり、処理後のスクリプトがアンインストールの最初に実行され、処理前のスクリプトがアンインストールの最後に実行されます。
インストールに失敗した場合、スクリプトは適切なロールバック アクションと共に逆の順番で呼び出されます。
事前または後処理スクリプトを呼び出すと、「 環境変数がデプロイ状態を示す方法」の説明に従って、環境変数のBTAD_ChangeRequestAction、BTAD_InstallMode、およびBTAD_HostClassを確認することで、実行されているデプロイ状態 (インストール、インポート、削除、アンインストール、インポートロールバック、またはインストール ロールバック) が決定されます。 変数のリファレンス情報については、「 スクリプト環境変数の前処理と後処理」を参照してください。
アプリケーションにスクリプトを追加する手順については、「 アプリケーションに前処理スクリプトまたは後処理スクリプトを追加する方法」を参照してください。
Note
コマンドライン引数をスクリプトに含めるには、AddResource コマンドを使用してスクリプトを追加する必要があります。後の説明を参照してください。
サポートされるスクリプト ファイルの拡張子
.com、.exe、.bat、.cmd、.vbs、.vbe、.js、.jse、.wsf、.wsh のスクリプト ファイル拡張子がサポートされています。 この拡張子のセットは、PATHEXT 環境変数で定義されています。
エラーのログ記録
ベスト プラクティスとして、スクリプトごとにエラーをログ ファイルに記録するよう構成することをお勧めします。 この理由は、Windows インストーラーではスクリプトで発生したエラーが記録されないためです。 スクリプトを実行した後はこれらのログを確認し、対処が必要なエラーがないかどうかを確認してください。
エラーが発生した時点を確認できるよう、ログ ファイルに日時を含めることができます。
ログ ファイルを指定し、エラーを記録するには、次のコードを使用します。
Set LogFile=<full path of log file>
…
echo %DATE% %TIME% <text> >> %LogFile%
次の例では、公開キー トークンが定義されていない場合、指定したログ ファイルにエントリが作成されます。 ログ ファイル内では、"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%
スクリプトに行 exit /b 1
を追加して、Windows インストーラーのエラー コードを生成することもできます。これにより、ロールバックされます。
次の例では、公開キー トークンが定義されていない場合、スクリプトは Windows インストーラーにエラーを返し、インストーラーではロール バックが実行されます。
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
同じスクリプトにインストールとクリーンアップ コードを含める
インストール時とアンインストール時では、逆の順番でスクリプトが実行されるため、インストールとクリーンアップ コードを同じスクリプトの条件ステートメント内に含めることができます。 たとえば、インストール コードは次のようにインストール モードを確認する条件ステートメント内に配置できます。
%BTAD_ChangeRequestAction%=Update AND %BTAD_InstallMode%=Install
クリーンアップ コードは次のようにインストール モードを確認する条件ステートメント内で限定できます。
%BTAD_ChangeRequestAction%=Delete AND %BTAD_InstallMode%=Uninstall
コマンド ライン引数を渡す
BTSTask AddResource コマンドを使用してスクリプトをアプリケーションに追加するときには、次のパラメーターを指定してスクリプトにコマンド ライン引数を渡すことができます。 この場合、引数はスクリプトが呼び出された時にスクリプトに渡されます。
/Property:Args="argument list"
Note
アプリケーションに処理前および処理後のスクリプトが複数ある場合、スクリプトは特に順序に関係なく実行されます。
重要
BTSTask コマンドはスクリプトで使用しないでください。特にインポート時に実行されるスクリプトでは使用しないでください。スクリプトはインポートと同じトランザクションに参加しません。
AddResource コマンドを使用してスクリプトをアプリケーションに追加する手順については、「 AddResource コマンド: 前処理スクリプト」を参照してください。 「AddResource コマンド: 後処理スクリプト」も参照してください。
参照
処理前および処理後のスクリプトを使用したアプリケーション展開のカスタマイズ
Template (アプリケーションの展開サンプル)