我动态加载dll(dll_1)并从中运行代码。当此(dll_1)使用另一个dll(dll_2)时会发生此问题。我无法在dll_1中嵌入dll_2。
我使用Assembly.LoadFile
然后CreateInstance
和InvokeMember
加载dll。
我该怎么办?
答案 0 :(得分:2)
如果我正确理解了您的问题,您想要检测何时没有解析对程序集的引用,并且能够进行调查以确保正确加载程序集。
您可以使用AppDomain.AssemblyResolveEvent来做到这一点。
答案 1 :(得分:0)
最简单的选择是不使用LoadFile并使用Load,因为它解析程序集的方式与正常的程序集解析相同。
下一个选项是预加载依赖项或使用AssemblyResolveEvent,正如Eric J建议的那样。如果你走这条路线,请阅读Suzanne Cook's articles关于加载程序集和绑定上下文(请注意,同一博客中有更多相关文章)。
除了链接的文章:
LoadFrom优势:
可以从多个路径加载程序集,而不仅仅是从ApplicationBase下面加载。
将自动找到已在此上下文中加载的依赖项。
将自动找到与请求LoadFrom上下文程序集相同的目录中的依赖项。