我正在尝试通过反射动态加载程序集。我有这样的文件夹结构:
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 文章,它包含物理文件的路径。本文还介绍了此属性可能为 Nothing 的情况。我不明白那里讨论的加载上下文。
任何帮助将是可观的......