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