EF 7 .NET Core工具错误

时间:2016-07-14 18:41:16

标签: asp.net-core entity-framework-core .net-core

我使用dotnet new -t lib命令创建了一个新的.NET Core项目。它是我的EF Context的类库。这是我的project.json

    {
  "version": "1.0.0-*",
  "buildOptions": {
    "debugType": "portable"
  },
  "dependencies": {},
  "frameworks": {
    "netstandard1.6": {
      "dependencies": {
        "NETStandard.Library": "1.6.0",
        "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0",
        "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"
      }
    }
  }
}

当我运行dotnet restore命令时,我收到此错误:

error: Package Microsoft.EntityFrameworkCore.Tools 1.0.0-preview2-final is not compatible with netstandard1.6 (.NETStandard,Version=v1.6). Package Microsoft.EntityFrameworkCore.Tools 1.0.0-preview2-final supports:

如何在netstandard1.6中使用EF Code First?

1 个答案:

答案 0 :(得分:14)

根据this"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"应该在project.json的工具部分注册:

{
"version": "1.0.0-*",
"description": "Class Library",
"frameworks": {
  "netstandard1.6": {
   "imports": [
     "dnxcore50"
   ]
 }
},

 "dependencies": {
 "NETStandard.Library": "1.6.0",
 "Microsoft.EntityFrameworkCore": "1.0.0",
 "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0"
},
"tools": {
  "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"
 }
}

使用imports也是一个好主意,因为一些EF Core的依赖项仍然不支持.NETStandard,但在我的情况下,我检查了它,即使没有导入它也能正常工作。

关于Johan B的评论,其中指出ef工具暂时不能用于类库,部分通过使用--startup-project解决方法来解决,例如:dotnet ef --startup-project ../ProjectThatCanRunCommand/ migrations add InitDb,更多信息:{{3 }}