リフレクションを介してアセンブリを動的にロードしようとしています。私はこのようなフォルダ構造を持っています:
project
\-- BIN
|-- myApp.exe
|-- SOMEEXTENTION1
| |-- someExtention1.dll
| \-- itsDependency1.dll
|
|-- SOMEEXTENTION2
|-- someExtention2.dll
\-- itsDependency2.dll
リフレクションを使用してsomeExtentionをロードできます。実行中にsomeExtentionがitsDependencyを探すときに問題が発生します。ドット ネットは BIN フォルダーを検索します。そこにはありません。Appdomain の AssemblyResolve イベントが発生しています...
このイベントをトラップしています。ResolveEventArgs で、ロードする必要があるアセンブリの名前を取得します。問題は、RequestingAssembly を取得できないことです。ResolveEventArgs のそのプロパティは常に空です。独自のEXTNフォルダーを直接見ることができるように、要求しているアセンブリが必要です。それがなければ、すべての EXTN フォルダーを調べる必要があり、私の場合は非常に大きくなる可能性があります。
RequestingAssembly にはプロパティ Location があり、この msdn article によれば、物理ファイルへのパスが含まれています。この記事では、このプロパティが Nothing になる状況についても説明します。そこで説明されている Load-Context がわかりません。
どんな助けもかなりのものです...