使用MEF加载包含在GAC中的必需DLL的DLLs

4
我使用MEF框架设计了一个应用程序,它有各种插件,可以通过惰性加载应用程序目录中插件接口的任何实现来实现 - 这是相当标准的做法。
然而,我开发了一个插件,该插件依赖于来自不同应用程序的一些DLL(将它们安装到GAC中)- 在已安装这些DLL的计算机上,应用程序运行良好,但在没有安装的计算机上,整个应用程序崩溃。
我对运行时搜索DLL的时间进行了一些研究,显然它会在遇到每个方法时都进行搜索。然后我尝试修改插件以确定必要的DLL是否在GAC中,然后才继续进入需要它们的方法,但这导致了相同的崩溃。
然后我注释掉了类中除了裸构造函数和一些接口存根之外的所有代码,看看是否能够解决问题,但它引起了相同的错误。 .net运行时是否立即尝试加载任何GAC程序集?
有人有过这种情况的经验吗?我的选择是什么?
谢谢
马龙
1个回答

5

我在这里回答了一个非常类似的问题(链接)。 (链接的问题是关于MEF尝试处理混淆程序集时出现问题,但我们使用相同的技术来忽略插件依赖于GAC中缺失的程序集,就像你的用例一样。)


谢谢,问题已解决 - 如果无法加载插件,它现在会忽略它。 - Marlon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接