次の方法で共有


前処理または後処理スクリプトの作成

アプリケーションのデプロイ時にアクションを実行するスクリプトを作成し、デプロイ プロセス中に実行するタイミングを定義できます。 環境変数を使用してコードを区切り、インストール コードとクリーンアップ コードの両方を同じスクリプトに含めることができます。 スクリプトにコマンド ライン引数を渡すこともできます。

注意事項

実稼働システムを対象としたスクリプトは、常にサイレント モードで記述する必要があります。 これは、ユーザー入力を待機しているスクリプトによって、入力が受信されるまで BizTalk データベースがロックされ、アクセスできなくなるためです。

デプロイ時にスクリプトを実行するタイミングを指定する

スクリプトをアプリケーションに追加するときにスクリプトを実行するタイミングを指定するには、System.BizTalk:PreProcessingScript (前処理スクリプト) または System.BizTalk:PostProcessingScript (後処理スクリプト) としてスクリプトを追加します。

前処理スクリプトと後処理スクリプトは、次のように実行されます。

  • 前処理スクリプトは、インポートまたはインストール プロセスの開始時に実行されます。

  • 後処理スクリプトは、インポートまたはインストール プロセスの最後に実行されます。

  • アンインストール中、すべてのスクリプトはインストール時に実行される順序とは逆の順序で実行されます。 そのため、後処理スクリプトはアンインストールの開始時に実行され、アンインストールの最後にスクリプトを前処理します。

  • インストールが失敗した場合、スクリプトは、適切なロールバック アクションを使用して逆の順序で呼び出されます。

    呼び出されると、「 環境変数がデプロイ状態を示す方法」の説明に従って、事前処理スクリプトまたは後処理スクリプトによって、実行されているデプロイ状態 (インストール、インポート、削除、アンインストール、ロールバックのインポート、またはインストールロールバック) が決定されます。環境変数のBTAD_ChangeRequestAction、BTAD_InstallMode、およびBTAD_HostClassを確認します。 変数のリファレンス情報については、「 スクリプト環境変数の前処理と後処理」を参照してください

    アプリケーションにスクリプトを追加する手順については、「 アプリケーションに前処理スクリプトまたは後処理スクリプトを追加する方法」を参照してください。

このトピックで後述するように、スクリプトにコマンド ライン引数を含める場合は、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%

次の例では、公開キー トークンが定義されていない場合、指定したログ ファイルにエントリが作成されます。 ログ ファイルでは、日付と時刻は、"公開キーをスクリプトで設定する必要があります" というテキストと同じ行に書き込まれます。

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"

複数の前処理スクリプトまたは後処理スクリプトとアプリケーションがある場合は、特定の順序で実行されません。

Von Bedeutung

スクリプトはインポートと同じトランザクションに参加しないため、スクリプト (特にインポート中に実行されるコマンド) では BTSTask コマンドを使用しないでください。

AddResource コマンドを使用してスクリプトをアプリケーションに追加する手順については、「 AddResource コマンド: スクリプトの前処理」を参照してください。 AddResource コマンド: 事後処理スクリプトも参照してください。

こちらもご覧ください

前処理スクリプトと後処理スクリプトを使用してアプリケーションの展開をカスタマイズする
テンプレート (アプリケーションのデプロイ サンプル)