C# 无法加载文件或汇编';Microsoft.Extensions.DependencyInjection.Abstractations';
我有一个旧程序,它使用Entity Framework Core 2.2.6访问MS-SQL数据库。现在我想给这个程序添加一些测试,我更喜欢使用EFCore的InMemory包 我有一个非常简单的获取数据的方法,它在实际的程序中工作,但是当我尝试使用InMemory数据库调用它时,我得到以下错误: System.IO.FileLoadException:无法加载文件或程序集“Microsoft.Extensions.DependencyInjection.Abstractions,Version=3.1.0.0,Culture=neutral,PublicKeyToken=adb9793829ddae60”或其依赖项之一。定位的程序集清单定义与程序集引用不匹配。(来自HRESULT的异常:0x8013100) ---->System.IO.FileLoadException:无法加载文件或程序集“Microsoft.Extensions.DependencyInjection.Abstractions,Version=2.2.0.0,Culture=neutral,PublicKeyToken=adb9793829ddae60”或其依赖项之一。定位的程序集清单定义与程序集引用不匹配。(来自HRESULT的异常:0x8013100)C# 无法加载文件或汇编';Microsoft.Extensions.DependencyInjection.Abstractations';,c#,.net,entity-framework,C#,.net,Entity Framework,我有一个旧程序,它使用Entity Framework Core 2.2.6访问MS-SQL数据库。现在我想给这个程序添加一些测试,我更喜欢使用EFCore的InMemory包 我有一个非常简单的获取数据的方法,它在实际的程序中工作,但是当我尝试使用InMemory数据库调用它时,我得到以下错误: System.IO.FileLoadException:无法加载文件或程序集“Microsoft.Extensions.DependencyInjection.Abstractions,Version
现在它似乎期望Microsoft.Extensions.DependencyInjection.Abstractations
3.1.0版。然而,我从未要求它安装它。事实上,我正在尝试保留所有EFCore版本您需要将app.config
块更改为:
<dependentAssembly>
<assemblyIdentity name="Microsoft.Extensions.DependencyInjection.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-2.2.0.0" newVersion="2.2.0.0"/>
</dependentAssembly>
尽管我建议删除此块,但请删除该包并重新添加它
Microsoft.Extensions.DependencyInjection.Abstractions
3.1.0
目标netstandard2.0
,因此您可能能够使用它,在这种情况下,您可以保持app.config
文件的原样,并在packages.config
文件中显式升级Microsoft.Extensions.DependencyInjection.Abstractions
。我宁愿使用EFCore 3.x.x。即使他们声称他们修复了对.NET标准的支持,但在与.NET Framework一起使用时,我还是遇到了麻烦。您的建议已删除到第一个错误,但它会继续链接类似的错误。
<package id="Microsoft.Extensions.DependencyInjection" version="2.2.0" targetFramework="net47" />
<dependentAssembly>
<assemblyIdentity name="Microsoft.Extensions.DependencyInjection.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-2.2.0.0" newVersion="2.2.0.0"/>
</dependentAssembly>