このユーティリティを使用すると、ファイル内の公開キー トークンまたは変数を、厳密な名前アセンブリ キー (.snk) ファイルから派生した公開キー トークンに置き換えることができます。
このユーティリティは、開発者が BTSTask Command-Line 参照 を使用してアセンブリを配置するスクリプトを記述する場合に便利です。 デプロイを成功させるには、アセンブリの完全修飾名 (公開キー トークンを含む) を指定する必要があります。 アセンブリの公開キー トークンは、.snk ファイルから抽出され、ビルド時にアセンブリに割り当てられます。 ただし、アセンブリを新しい環境にデプロイする前に、多くの場合、別の公開キー トークンを使用して再構築されます。 その結果、開発者は、配置スクリプトの実行時にアセンブリに使用される公開キー トークンがわからない可能性があります。
この状況に対処するには、次の 2 つの方法で公開キー トークンの置換ユーティリティを使用できます。
シナリオ 1. デプロイ スクリプトでは、開発者は公開キー トークンまたは公開キー トークンを表すプレースホルダーを使用できます。 スクリプトを実行する前に、ユーザーは公開キー トークンの置換ユーティリティを実行して、スクリプト ファイル内の公開キー トークンまたはプレースホルダーを、コピー先環境のアセンブリのビルドに使用された .snk ファイルから抽出された公開キー トークンに置き換えることができます。
シナリオ 2. 開発者は、次のように、新しい公開キー トークンを自動的に置き換えるスクリプトを構成できます。スクリプトの開始時に、公開キー トークンの置換ユーティリティを呼び出し、公開キー トークンを含む .snk ファイルを指定します。 スクリプト内で、環境変数 %NEWTOKEN% を使用して公開キー トークンを表します。 スクリプトを実行すると、ユーティリティは .snk ファイルから公開キー トークンの値を抽出し、%NEWTOKEN%環境変数に設定します。 スクリプトを実行すると、%NEWTOKEN% の各インスタンスは、指定した .snk ファイルの公開キー トークンに置き換えられます。 例えば次が挙げられます。
ReplacePKT.bat key.snk ... ... gacutil /u Assembly, ... PublicKey=%NEWTOKEN% ...
SDK 内の場所
公開キー トークンの置換ユーティリティは、次の場所にあります。
\Program Files (x86)\Microsoft BizTalk Server <VERSION>SDK\Utilities\ReplacePublicKeyToken\.
公開キー トークンの置換ユーティリティは、次の 3 つのファイルで構成されます。
ReplacePKT.bat
ReplacePKT.vbs
ReplacePKT.wsf
プロシージャ
シナリオ 1 で説明されているように、公開キー トークンまたはファイル内のプレースホルダーのすべてのインスタンスを、.snk ファイルから抽出された公開キー トークンに置き換えるには、次の手順に従います。
ファイル内の公開キー トークンまたはプレースホルダーのインスタンスを置き換えるには
3 つの公開キー トークン置換ユーティリティ ファイル (ReplacePKT.bat、ReplacePKT.vbs、ReplacePKT.wsf)、スクリプト ファイル、および .snk ファイルがすべてローカル コンピューターから使用できることを確認します。
コマンド ウィンドウで、ディレクトリを、公開キーの置換ユーティリティ ファイルを含むフォルダーに変更します。
コマンド プロンプトから、次のコマンドを実行します。
ReplacePKT <.snk ファイル> <古い公開キー トークン> <置き換えるファイル>
選択肢 説明 < .snk ファイル> 既存の公開キー トークンまたはプレースホルダーの代わりに使用する公開キー トークンを含む .snk ファイルの完全なパス。 < 古い公開キー トークン> 置き換える公開キー トークンまたはプレースホルダー。 < 置き換えるファイル> 公開キー トークンまたはプレースホルダーを置き換えるファイルの完全パス。 例:
ReplacePKT.bat C:\Tokens\MyToken.snk 12ab3456cd789e12 C:\Scripts\MyScript.vbs
シナリオ 2 で説明されているように、.snk ファイルから派生した公開キー トークンを使用するスクリプトで環境変数を自動的に設定するには、次の手順に従います。
公開キー トークンを使用する環境変数を設定するには
スクリプト ファイルの先頭に、次のコード行を追加します。
ReplacePKT <filename>.snk
ここで、 <filename> は、公開キー トークンの派生元となる .snk ファイルの名前です。
Example: ReplacePKT.bat MyToken.snk
スクリプト ファイルで、
%NEWTOKEN%
を使用して公開キー トークンを表します。例:
PublicKey=%NEWTOKEN%
スクリプト ファイルをユーザーに配信するときは、公開キー トークンの置換ユーティリティ (ReplacePKT.bat、ReplacePKT.vbs、ReplacePKT.wsf) を構成する 3 つのファイルを含めます。 スクリプトを実行する前に、スクリプトのユーザーがファイル システム上の同じフォルダーにすべてのファイルをコピーしていることを確認します。