EF-Core Update-Database命令失败(无法从Microsoft.EntityFramework.Design 2.1.4.0加载类型)

时间:2018-11-30 10:03:56

标签: .net visual-studio-2017 entity-framework-core ef-migrations

我无法运行迁移-这很烦人,因为我无法继续进行项目...

我认为必须使用 ef工具,因为前一段时间(一个月)该项目中的迁移有效。

添加迁移命令成功运行,但是随后的更新数据库失败,并出现以下错误:

Applying migration '20181129154443_strlen'.
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. 
 ---> System.Runtime.Remoting.RemotingException: 
 Cannot load type
 'Microsoft.EntityFrameworkCore.Design.IOperationResultHandler,
 Microsoft.EntityFrameworkCore.Design, Version=2.1.4.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'.

一些可能相关的信息:

  • 解决方案中的所有项目都依赖于相同的程序包(即 Microsoft.EntityFrameworkCore.Design,Version = 2.1.4.0等)
  • 包含DbContext的项目使用的是包引用样式,而不是packages.config(不要问我为什么)
  • 启动项目正在使用经典的 packages.config
  • 解决方案中的所有项目都针对 .NET Framework 4.7.2
  • 整个解决方案的构建和运行都很好(当我删除待处理的迁移时
  • 添加迁移命令的效果很好(生成迁移代码文件,发生任何类型的更改(无论我要更改列名还是添加索引都没有关系))
  • 我已经安装了所有.NET Core工具(sdk,运行时)版本

有类似的问题(未回答): EF core migration failed: System.Runtime.Remoting.RemotingException: Cannot load type 'Microsoft.EntityFrameworkCore.Design.IOperationResultHandler 但是那里没有任何建议对我没有帮助。

我尝试过的事情:

  1. 重新启动VisualStudio,清理.vs
  2. 清除了所有NugetCache,删除了程序包文件夹
  3. 删除bin / obj文件夹
  4. 重启电脑
  5. 经检查的NetCore sdk版本和运行时版本

1 个答案:

答案 0 :(得分:0)

对我来说,解决方案是将解决方案中的所有项目从4.7.2转换为.NET Core 2.2。 (还将所有NuGets(EFCore,EFCore.Design)都升级到了v2.2.2)。之后,迁移开始起作用。