Entity framework EF堆芯工具1.1.0-preview4-final与Net46不兼容

Entity framework EF堆芯工具1.1.0-preview4-final与Net46不兼容,entity-framework,entity-framework-core,Entity Framework,Entity Framework Core,我有一个EF核心项目,我最近升级到1.1。一切正常…直到我尝试添加迁移。现在,在命令行上执行dotnet ef会生成一个关于无法找到ef模块/程序的错误 深入研究这一点,我发现在涉及工具的EF Core 1->1.1转换中有一个突破性的变化。在project.json中,必须替换此依赖项: "Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final", 与 不幸的是,当我这样做时,包更新失败,错误消息是此版本的工具不支持net46。

我有一个EF核心项目,我最近升级到1.1。一切正常…直到我尝试添加迁移。现在,在命令行上执行dotnet ef会生成一个关于无法找到ef模块/程序的错误

深入研究这一点,我发现在涉及工具的EF Core 1->1.1转换中有一个突破性的变化。在project.json中,必须替换此依赖项:

"Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final",

不幸的是,当我这样做时,包更新失败,错误消息是此版本的工具不支持net46。因为我正在使用某些库,所以我必须在其下运行

以下是整个project.json文件:

  "version": "1.0.0-*",

  "dependencies": {
    "ConnellDataCore": "1.0.0-*",
    "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.1.0",
    "Microsoft.EntityFrameworkCore": "1.1.0",
    "Microsoft.EntityFrameworkCore.SqlServer": "1.1.0",
    "Microsoft.EntityFrameworkCore.SqlServer.Design": "1.1.0",
    "Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final",
    "Microsoft.EntityFrameworkCore.Tools.DotNet": "1.1.0-preview4-final", 
    "Microsoft.Extensions.Configuration": "1.1.0",
    "Microsoft.Extensions.Configuration.Json": "1.1.0",
    "Serilog": "2.3.0"
  },

  "buildOptions": {
    "emitEntryPoint": true,
    "xmlDoc": false
  },

  "frameworks": {
    "net46": {
      "frameworkAssemblies": {
        "System.IO.Compression": "4.0.0.0"
      }
    }
  },

  "tools": {
  }
"Microsoft.EntityFrameworkCore.Tools.DotNet": "1.0.0-preview3-final"
我还应该指出,数据库是在独立程序集中定义的,因此我必须使用“创建一个虚拟静态程序::Main()”技巧以及“创建一个临时上下文工厂”技巧


我如何才能回到原来的位置,将迁移添加到我的EF Core数据库中?

这是2017年2月初的一个已知错误。解决方法是恢复到工具的早期版本(在project.json文件中):

还请注意,程序集路径已从Microsoft.EntityFrameworkCore.Tools更改为Microsoft.EntityFrameworkCore.Tools.DotNet

最后,在我的特殊情况下,我错误地将引用包含在project.json文件的dependencies部分中。它们真正属于工具部分:

  "tools": {
    "Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final",
    "Microsoft.EntityFrameworkCore.Tools.DotNet": "1.0.0-preview3-final"
  }
  "tools": {
    "Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final",
    "Microsoft.EntityFrameworkCore.Tools.DotNet": "1.0.0-preview3-final"
  }