引用使用旧版EF的DLL

时间:2014-11-28 16:34:38

标签: .net entity-framework dll

在我的WCF服务项目中,我使用的是EF 6.1.1,在同一项目中我添加了对使用EF 4.3的库的引用。每当我调用库中需要EF的任何方法时,它都会抛出一个错误:

  

无法加载文件或程序集'EntityFramework,Version = 4.3.1.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'或其依赖项之一。定位的程序集的清单定义与程序集引用不匹配。 (HRESULT异常:0x80131040)

如何在不更改库中的EF版本以匹配服务版本的情况下解决此问题(反之亦然)?

1 个答案:

答案 0 :(得分:0)

如果API中没有重大更改,您可以使用程序集绑定重定向。如果将以下内容添加到.config文件中,则应加载6.1.1 EF程序集而不是绑定的早期版本:

   <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
         <dependentAssembly>
            <assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" culture="neutral" />
            <bindingRedirect oldVersion="4.3.1.0-6.1.1.0" newVersion="6.1.1.0"/>
         </dependentAssembly>
      </assemblyBinding>
   </runtime>