添加迁移显示错误EntityFrameworkCore.Design未安装

时间:2016-11-04 13:02:33

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

我在这里关注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.

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

我还尝试使用命令

在NuGet PM之外运行
  • dotnet restore
  • dotnet ef migrations添加MyFirstMigration

并收到以下错误:

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

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

3 个答案:

答案 0 :(得分:5)

检查您的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"
  ]
},

答案 1 :(得分:2)

首先,使用VS2015 Update2和VS2015最新版本的本文档是Update 3.所以我建议你将VS2015升级到Update 3,它修复了很多VS错误。

然后根据教程,当我运行命令Add-Migration MyFirstMigration时,我收到相同的错误消息。然后我在Package Manager Console中运行命令“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"
},

答案 2 :(得分:0)

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

此错误使我很难崩溃并花了整夜的时间进行研究(使用EF 3.2.0的VS 16.5.0)。 直到我最终发现我为什么出错并无法按照教程进行操作。

显然,一个依存关系被创建为_._,而不是正确的引用(参见图片)

corrupt dependency