繁体   English   中英

MEF插件找不到引用的库

[英]MEF plugin can't find referenced library

我正在用MEF实现一个插件系统,到目前为止,它的运行状况很好。 我最近遇到了一个问题:主应用程序使用SQLite数据库,现在我有一个必须同时访问该数据库的插件。 当我将插件复制到我的插件目录时,mef正确地将其选中,但是当它尝试使用SQlite访问任何内容时,我收到一个System.IO异常,告诉我它找不到它依赖的sqlite dll。

我也尝试将sqlite dll复制到插件目录,但仍然无法正常工作。 我在主应用程序中引用的任何库也不应该在我的插件中可用吗? 即使没有,如果插件位于同一目录中,插件是否也不应找到它们呢?

任何帮助,将不胜感激。

SQLite程序集应位于您的路径或应用程序目录中,而不是模块目录中。 如果是这样,您仍然遇到相同的错误,那么听起来像是我在此处发布的完全相同的问题,并带有以下解决方案:

public static class AssemblyResolverFix
{
  //Looks up the assembly in the set of currently loaded assemblies,
  //and returns it if the name matches. Else returns null.
  public static Assembly HandleAssemblyResolve( object sender, ResolveEventArgs args )
  {
    foreach( var ass in AppDomain.CurrentDomain.GetAssemblies() )
      if( ass.FullName == args.Name )
        return ass;
    return null;
  }
}

//in main
AppDomain.CurrentDomain.AssemblyResolve += AssemblyResolverFix.HandleAssemblyResolve;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM