厳密な名前のバージョン管理
4_Shared ディレクトリのコードのビルドについて、この手順では 5_Versioned ディレクトリのコードを使用して、2 つの別々のバージョンの共有可能コンポーネントを作成し、追加のアプリケーション構成オプションを使用して、アプリケーションをどのように実行させるかを示します。Reverser.dll のバージョン 2.0.1.0 のメソッドは、意図的にバージョン 2.0.0.0 の同じメソッドと互換性を持たないように変更されているため、バージョン 2.0.0.0 を使用してそのメソッドを正常に呼び出したクライアントは、以降のリビジョンではメソッドを呼び出せなくなります。
バージョン キーをアセンブリのあるバージョンから別のバージョンに変更する方法を確認するために、厳密名ツール (Sn.exe) を使用して新しいキー ペアを生成し、生成したキー ペアをファイルに格納します。
sn k orgVerKey.snk
新しい秘密キーを生成したら、キー ファイルと割り当てるバージョン番号を指定して、いつでもバージョン 2.0 の両コンポーネントをコンパイルできます。ここでも、次のように属性を指定して、バージョン 2.0.0.0 の場合を示します。
[assembly: System.Reflection.AssemblyVersion("2.0.0.0")]
[assembly: System.Reflection.AssemblyKeyFile("orgVerKey.snk")]
更新した 2 つの Reverser.dll ファイルに対して Ildasm.exe を再び実行すると、別の .publickey プロパティが存在すること (バージョン 1.0.0.0 とは別のキー ペアを使用したため) と .ver プロパティが更新されていること (どちらを参照しているかにより 2.0.0.0 または 2.0.1.0) から、アセンブリが共有可能になっていることを確認できます。
.assembly Reverser
{
.custom instance void
... // orgVerKey.snk
.publickey = (...}
.hash algorithm 0x00008004
.ver 2:0:0:0
}
参照
ポリシーのバインディング | パッケージ化と配置の要約 | 付録 A: パッケージ化および配置の追加情報 | 付録 B: パッケージ化および配置用のツール