4

次のように、アセンブリを参照するアセンブリを参照する、取り組んでいるプロジェクトがあります。

Me
 |- A
 |  |- B v1.4.2
 |
 |- B v1.5

A は具体的に参照する必要はなく1.4.2、それ以上のものを参照するだけ1.4です。の参照のプロパティでA、B は「特定のバージョン = False」と言っていますが、 で実行するMeB v1.5、 をFileLoadException探しB v1.4.2ます。ただし、B v1.5存在しますが、CLR ケアを少なくするにはどうすればよいですか?

4

1 に答える 1

2

バインド リダイレクトはここに行く方法ですが、別の EXE でプラグインをロードしている場合など、それができない場合があります。私たちが採用した実用的な解決策は、AppDomain.CurrentDomain.AssemblyResolveイベントをフックし、myassembly1.4.2.dll へのバインドの失敗をリッスンし (たとえば)、System.Reflection.Assembly.LoadFrom("c:\assemblies\myassembly.1.5.0.dll")代わりに呼び出しによって返されたアセンブリを明示的に返すことでした。バインディング リダイレクトの方が優れていますが、実用的でない場合もあります。

于 2012-10-03T22:56:57.257 に答える