3

アセンブリ A と B は非公開で展開され、厳密な名前が付けられています。アセンブリ A には、アセンブリ B への参照が含まれています。アセンブリ B には、B1 と B2 の 2 つのバージョンがあります。アセンブリ A が B1 または B2 のいずれかにバインドされる可能性があることを示すことができるようにしたいと考えています。理想的には、この情報をアセンブリ自体に組み込むことによってです。私のオプションは何ですか?

バージョン管理ポリシーと、それが GAC に適用される方法についてはある程度知っていますが、これらのアセンブリが GAC にあることに依存したくありません。

4

2 に答える 2

2

厳密に型指定されたライブラリの特定のバージョンを別のバージョンよりも優先する必要があることを .Net Framework に示すことができる場所がいくつかあります。これらは:

  • パブリッシャー ポリシー ファイル
  • machine.config ファイル
  • app.config ファイル

これらのメソッドはすべて、アセンブリのバージョンまたはバージョンの範囲を特定のバージョンにバインドするように .Net Framework に指示できる"<bindingRedirect>"要素を利用します。

バージョン 2.0 までのアセンブリのすべてのバージョンをバージョン 2.5 にバインドするために使用されるタグの短い例を次に示します。

<assemblyBinding>
    <dependantAssembly>
        <assemblyIdentity name="foo" publicKeyToken="00000000000" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0 - 2.0.0.0" newVersion="2.5.0.0" />
    </dependantAssembly>
</assemblyBinding>

多くの詳細があるため、MSDN の Redirecting Assembly Versionsについて読んで、どの方法が自分のケースに最適かを判断することをお勧めします。

于 2008-09-11T00:32:11.997 に答える
1

app.config ファイルでバージョン ポリシーを設定できます。または、これらのアセンブリを手動でロードすることもできますAssembly.LoadFrom()。この場合、アセンブリ バージョンは考慮されません。

于 2008-09-10T16:14:37.513 に答える