C# 无法加载类型';Microsoft.EntityFrameworkCore.Internal.SemanticVersionComparer';来自组件';Microsoft.EntityFrameworkCore,

C# 无法加载类型';Microsoft.EntityFrameworkCore.Internal.SemanticVersionComparer';来自组件';Microsoft.EntityFrameworkCore,,c#,sqlite,entity-framework-core,C#,Sqlite,Entity Framework Core,我有一个使用EF Core的ASP.NET Core 3.1 Web API应用程序。这是我在Startup类的ConfigureServices方法中的配置: services.AddDbContext<ApplicationContext>(options => options.UseSqlServer(Configuration.GetConnectionString("AppConn"))); 我得到这个错误: System.Reflection.

我有一个使用EF Core的ASP.NET Core 3.1 Web API应用程序。这是我在
Startup
类的
ConfigureServices
方法中的配置:

services.AddDbContext<ApplicationContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("AppConn")));
我得到这个错误:

System.Reflection.TargetInvocationException:调用的目标已引发异常

System.TypeLoadException:无法从程序集“Microsoft.EntityFrameworkCore,Version=5.0.0.0,Culture=neutral,PublicKeyToken=adb9793829ddae60”加载类型“Microsoft.EntityFrameworkCore.Internal.SemanticVersionComparer”

在Microsoft.EntityFrameworkCore.Design.OperationExecutor..ctor(IOperationReportHandler,IDictionary参数)上
---内部异常堆栈跟踪结束---
位于System.RuntimeMethodHandle.InvokeMethod(对象目标、对象[]参数、签名符号、布尔构造函数、布尔wrapExceptions)
位于System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr、Binder Binder、Object[]参数、CultureInfo区域性)
位于System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr,Binder Binder,Object[]args,CultureInfo culture)
在System.Activator.CreateInstance(类型类型、BindingFlags bindingAttr、Binder Binder、对象[]参数、CultureInfo区域性、对象[]activationAttributes)
位于System.Activator.CreateInstance(类型,对象[]args)
位于Microsoft.EntityFrameworkCore.Tools.ReflectionOperationExecutor..ctor(字符串汇编、字符串startupAssembly、字符串projectDir、字符串dataDirectory、字符串根命名空间、字符串语言)
在Microsoft.EntityFrameworkCore.Tools.Commands.ProjectCommandBase.CreateExecutor()中 位于Microsoft.EntityFrameworkCore.Tools.Commands.MigrationsAddCommand.Execute()
在Microsoft.EntityFrameworkCore.Tools.Commands.CommandBase.c\uuu DisplayClass0\u0.b\u0()中 在Microsoft.DotNet.Cli.CommandLine.CommandLineApplication.Execute(字符串[]args)
位于Microsoft.EntityFrameworkCore.Tools.Program.Main(字符串[]args)

调用的目标已引发异常


请将entity framework core nuget包更新到3.1.10(或最新的5.0.0)。它将解决您的问题。

不要忘记,对于迁移,您必须在主EntityFramework项目和启动项目中安装软件包

Microsoft.EntityFramework.Core
Microsoft.EntityFramework.Core.Design

我在一个.NETCore3.1项目中遇到了这个问题。我通过在启动项目中安装包Microsoft.EntityFrameworkCore.Design来修复它,我安装了EF Core 5包,但没有安装Microsoft.EntityFrameworkCore.Design,还有一个包隐式引用了旧版本(
Microsoft.EntityFrameworkCore.Design 3.0.0


在Microsoft.EntityFrameworkCore.Design 5.x.x上安装显式依赖项为我解决了这个问题。

您似乎与EF Core相关的软件包版本不匹配。请包括EF核心相关项目包参考(来自.csproj的所有条目都以
开头错误:没有适用于包“Microsoft.EntityFramework.Core”的版本错误:没有适用于包“Microsoft.EntityFramework.Core.Design”的版本问题是您安装了哪个Microsoft.EntityFrameworkCore.Design?我有netcoreapp3.1应用程序对于EF5,我得到了这个答案的帮助,但我有一个经验可以分享,Microsoft.EntityFrameworkCore.Tools的版本在删除所有迁移并尝试添加“first”迁移后,突然从5x跳回到3x。另外,请检查.csproj文件。
add-migration initial -context ApplicationContext
Microsoft.EntityFramework.Core
Microsoft.EntityFramework.Core.Design