我设计了一个具有各种插件的应用程序,通过使用MEF框架来延迟加载应用程序目录中插件接口的任何实现 - 非常标准的东西。
但是,我已经开发了一个插件,它依赖于来自不同应用程序的某些DLL(将它们安装到GAC中) - 在安装了这些应用程序的计算机上,应用程序运行良好,但在不是我的整个计算机上申请失败。
我已经做了一些关于运行时何时搜索DLL的研究,显然它是为它遇到的每个方法做的。然后我尝试修改插件以确定在继续输入需要它们的方法之前是否所需的DLL在GAC内部,但是这导致了相同的跌倒。
然后我注释掉了类中的所有代码,除了一个简单的构造函数和一些接口存根,看看它是否可行,但它导致了同样的错误。 .net运行时是否尝试立即加载任何GAC程序集?
有没有人有这种情况的经验?我有什么选择?
谢谢
马龙
答案 0 :(得分:6)
我已经回答了一个非常相似的问题here。 (链接的问题是关于MEF尝试处理混淆程序集时的问题,但是我们使用相同的技术来忽略依赖于GAC中缺少程序集的插件,就像在用例中一样。)