【问题标题】:Add-Migration showing error EntityFrameworkCore.Design is not installed添加迁移显示错误 EntityFrameworkCore.Design 未安装
【发布时间】:2016-11-04 13:02:32
【问题描述】:

我正在关注这里的 EntityFrameworkCore 教程 https://docs.efproject.net/en/staging/platforms/aspnetcore/new-db.html 但是当我到达教程的创建数据库部分时 https://docs.efproject.net/en/staging/platforms/aspnetcore/new-db.html#create-your-database 并运行命令 Add-Migration MyFirstMigration 我收到以下错误:

Cannot execute this command because Microsoft.EntityFrameworkCore.Design is not installed. Install the version of that package that matches the installed version of Microsoft.EntityFrameworkCore and try again.

我尝试在 NuGet 上安装 Microsoft.EntityFrameworkCore.Design 以及 Microsoft.EntityFrameworkCore.SqlServer.Design 的每个版本,但仍然遇到相同的错误。

我还尝试使用命令在 NuGet PM 之外运行

  • dotnet 恢复
  • dotnet ef 迁移添加 MyFirstMigration

并得到以下错误:

Unhandled Exception: System.MissingMethodException: Entry point not found in assembly 'Microsoft.EntityFrameworkCore.Design, Version=1.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'.

我尝试了所有我能想到的东西,并在互联网上到处寻找,但仍然找不到答案。

【问题讨论】:

标签: c# entity-framework visual-studio nuget entity-framework-core


【解决方案1】:

检查您的 project.json 是否包含这些条目

依赖项下:

"Microsoft.EntityFrameworkCore.Design": {
  "version": "1.0.0-preview2-final",
  "type": "build"
},

"Microsoft.EntityFrameworkCore.SqlServer": "1.0.1",

在工具下:

"Microsoft.EntityFrameworkCore.Tools": {
  "version": "1.0.0-preview2-final",
  "imports": [
    "portable-net45+win8+dnxcore50",
    "portable-net45+win8"
  ]
},

【讨论】:

  • 这个对我有用,我能够在应用程序和 Web 应用程序上成功使用 Add-Migration,问题是我的 Context 在库中并且 1.0.0-preview2-final与 NETStandard.Library 不兼容,天知道为什么。我现在正在使用一种解决方法并将我的库编译为命令应用程序,并且到目前为止它正在运行。我仍然希望微软尽快更新他们的库和文档,这与我想要的架构相去甚远。
  • @Destino 请随意标记为答案,因为它解决了您的问题。
【解决方案2】:

首先,本文档使用VS2015 Update2,目前VS2015的最新版本是Update 3。所以我建议你将你的VS2015升级到Update 3,它已经修复了很多VS的Bug。

然后根据教程,我在运行命令 Add-Migration MyFirstMigration 时收到相同的错误消息。然后我在包管理器控制台中运行命令“Install-Package Microsoft.EntityFrameworkCore.Design”来安装 EntityFrameworkCore.Design。安装完成后,运行 Add-Migration MyFirstMigration 命令,添加成功。

以下是我的 project.json 文件内容。请检查依赖项和工具版本。确保它们的版本正确。

"dependencies": {
"Microsoft.NETCore.App": {
  "version": "1.0.0",
  "type": "platform"
},
"Microsoft.AspNetCore.Diagnostics": "1.0.0",
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
"Microsoft.Extensions.Logging.Console": "1.0.0",
"Microsoft.EntityFrameworkCore.SqlServer": "1.0.1",
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview3-final",
"Microsoft.EntityFrameworkCore.Design": "1.0.1"
},

"tools": {
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final"
},

【讨论】:

  • 我投了赞成票,因为它可能会帮助一些遇到这些问题的人。您的解决方案对我不起作用,因为您使用的是设计 1.0.1 和工具 1.0.0-preview3-final,它们似乎不兼容。
  • preview3 工具与 efcore 1.1 一起发布(目前是预发布版) - 如果您使用的是 1.0.1,您可能应该使用 preview2 工具
【解决方案3】:

我是一个 .net / c# 菜鸟,一直想学习网络编码。但从来没有 - 直到我了解 blazor 以及它如何让我拥有一个我可以自己处理和学习的环境。

这个错误让我崩溃并花费数夜研究(VS 16.5.0 和 EF 3.2.0)。 直到我终于发现为什么我收到错误并且无法按照教程进行操作。

显然,一个依赖项被创建为_._,而不是正确的引用(见图)

corrupt dependency

【讨论】:

  • 抱歉:这是图片中的第 218 行。左边是正确的
  • 欢迎来到 Stack Overflow!如果可能的话,您应该尝试在您的答案中以最小的形式包含代码。如果链接消失,依赖外部链接(尤其是图片)可能会出现问题,并且可能意味着搜索引擎将无法找到您答案的所有内容。
猜你喜欢
  • 2018-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-29
  • 2018-01-10
  • 2016-08-07
  • 2020-03-17
相关资源
最近更新 更多