使用最新的 Entity Framework 核心出现 Newtonsoft.Json 装配错误

Getting Newtonsoft.Json assembly error with latest Entity Framework Core

我在安装 TC 2 的最新 visual studio 更新后创建了一个新的 Web Api 项目。

向项目添加了实体 Microsoft.EntityFrameworkCore": "1.0.0-rc2-finalMicrosoft.EntityFrameworkCore.Tools: 1.0.0-preview1-final

打开命令行并输入 dotnet ef

此时我得到一个错误:

Could not load file or assembly 'Newtonsoft.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The system cannot find the file specified. 

我是不是拿错了工具版本?

我用的是intellisense的版本。

摘自project.json:

{
  "dependencies": {
    "Microsoft.NETCore.App": {
      "version": "1.0.0-rc2-3002702",
      "type": "platform"
    },
    "Microsoft.AspNetCore.Mvc": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0-rc2-final",
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0-rc2-final",
    "Microsoft.Extensions.Configuration.FileExtensions": "1.0.0-rc2-final",
    "Microsoft.Extensions.Configuration.Json": "1.0.0-rc2-final",
    "Microsoft.Extensions.Logging": "1.0.0-rc2-final",
    "Microsoft.Extensions.Logging.Console": "1.0.0-rc2-final",
    "Microsoft.Extensions.Logging.Debug": "1.0.0-rc2-final",
    "Microsoft.EntityFrameworkCore": "1.0.0-rc2-final",
    "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0-rc2-final",
    "Microsoft.NETCore.Platforms": "1.0.1-rc2-24027",
    "Microsoft.EntityFrameworkCore.Tools": {
      "version": "1.0.0-preview1-final" ,
      "type": "build"
    }
  },

  "tools": {
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": {
      "version": "1.0.0-preview1-final",
      "imports": "portable-net45+win8+dnxcore50"
    },
    "Microsoft.EntityFrameworkCore.Tools": {
      "imports": [ "portable-net451+win8" ],
      "version": "1.0.0-preview1-final"
    }
  },

  "frameworks": {
    "netcoreapp1.0": {
      "imports": [
        "dotnet5.6",
        "dnxcore50",
        "portable-net45+win8",
        "portable-net451+win8"
      ]
    }
  },

这似乎是 RC2 中的已知问题。

我会标记为已回答并等待 EF 团队解决。

一个解决方法帮了我大忙。

  1. 删除:

    • %USERPROFILE%\.nuget\packages\.tools\Microsoft.EntityFrameworkCore.Tools
    • %USERPROFILE%\.nuget\packages\Microsoft.EntityFrameworkCore.Tools
  2. 重新运行dotnet restore

我还必须在 project.json 文件中手动添加 InternalAbstractions:

    "Microsoft.DotNet.InternalAbstractions": "1.0.0",

https://github.com/dotnet/core/issues/366