公開キー トークンの置換ユーティリティ
このユーティリティを使用すると、ファイル内の公開キー トークンまたは変数のいずれかを、厳密な名前のアセンブリ キー (.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%
スクリプト ファイルをユーザーに配布する場合は、公開キー トークンの置換ユーティリティを構成する 3 つのファイル (ReplacePKT.bat、ReplacePKT.vbs、および ReplacePKT.wsf) と共に配布します。 スクリプト コピーのユーザーが、スクリプトを実行する前に、これらのファイルをファイル システム上の同一のフォルダーにコピーしていることを確認します。