Asp.net-Core

EF 7 .NET Core 工具錯誤

  • July 18, 2016

我用dotnet new -t lib命令創建了一個新的 .NET Core 項目。這是我的 EF 上下文的類庫。這是我的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?

據此"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,更多資訊:參數化 dotnet-ef 使用的目錄。

引用自:https://stackoverflow.com/questions/38381856