【问题标题】:Cannot scaffold DB: Microsoft.EntityFramework.Tools (invalid json file)无法搭建数据库:Microsoft.EntityFramework.Tools(无效的 json 文件)
【发布时间】:2016-11-01 18:05:11
【问题描述】:

我正在使用 .NET Core 控制台应用程序,我在安装所需的 EF 依赖项后尝试构建数据库。这是project.json:

{
  "version": "1.0.0-*",
  "buildOptions": {
    "emitEntryPoint": true
  },

  "dependencies": {
    "Microsoft.EntityFrameworkCore": "1.0.1",
    "Microsoft.EntityFrameworkCore.Design": "1.0.1",
    "Microsoft.EntityFrameworkCore.SqlServer": "1.0.1",
    "Microsoft.EntityFrameworkCore.SqlServer.Design": "1.0.1",
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
    "Microsoft.NETCore.App": {
      "type": "platform",
      "version": "1.0.1"
    }
  },
  "tools": {
    "Microsoft.EntityFrameworkCore.Tools": {
      "version": "1.0.0-preview2-final"
    }
  },

  "frameworks": {
    "netcoreapp1.0": {
      "imports": "dnxcore50"
    }
  }
}

在包管理器控制台中运行此命令时:

PM> Scaffold-DbContext "Server=PC;Database=DB;User Id=sa;Password=pass;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir EntityModels 

它给了我以下信息:

未处理的异常:System.MissingMethodException:在程序集“Microsoft.EntityFrameworkCore.Design, Version=1.0.1.0, Culture=neutral, PublicKeyToken=adb9793829ddae60”中找不到入口点。

然后,我安装了最新版本的 Microsoft.EntityFrameworkCore.Tool(版本 3),现在执行脚手架命令时,它给出了以下内容:

c:....\project.json 中的 JSON 文件无效

【问题讨论】:

  • @stuartd 它不再是重复的,但部分问题在于另一个问题。我正在尝试添加更多线索,以便更轻松地对此进行调查。

标签: c# entity-framework .net-core scaffolding


【解决方案1】:

不确定这是否是您唯一的问题,但我有"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview3-final"。确保你所有的 nuget 都是最新的。还要确保您使用的是 Visual Studio 2015 Update 3、最新的工具和最新的内核等。另外,至少是 powershell 3(我使用的是 4)。

【讨论】:

  • 根据您的请求,我添加了一个新的控制台应用程序,安装了最新的 nugets。使用 Powershell 5,VS 2015 Update 3。然后,运行脚手架命令给出以下信息:找不到与命令“dotnet-ef”匹配的可执行文件
  • 是的,版本 1.0.0-preview3-final 也有同样的问题
【解决方案2】:

我在使用 1.0.1 时遇到了同样的问题。这并不理想,但在未来版本解决此问题之前,我在运行 Microsoft.EntityFrameworkCore.Design 时使用版本 1.0.0-preview2-finaldotnet ef dbcontext scaffold,然后在脚手架过程完成后恢复为 1.0.1。

确保在每次 project.json 更改后进行包还原。

这是我的 project.json:

{
  "dependencies": {
    "NETStandard.Library": "1.6.0",
    "Microsoft.EntityFrameworkCore": "1.0.1",

    // use this version to build/run
    "Microsoft.EntityFrameworkCore.Design": "1.0.1",

    // use this version when running `dotnet ef dbcontext scaffold`
    //"Microsoft.EntityFrameworkCore.Design": {
    //  "type": "build",
    //  "version": "1.0.0-preview2-final"
    //},

    "Microsoft.EntityFrameworkCore.SqlServer": "1.0.1",
    "Microsoft.EntityFrameworkCore.SqlServer.Design": "1.0.1",
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
    "System.Linq.Dynamic.Core": "1.0.6.5",
    "AutoMapper.Extensions.Microsoft.DependencyInjection": "1.1.2"
  },
  "tools": {
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"
  },
  "buildOptions": {
    "emitEntryPoint": true
  },
  "frameworks": {
    "netcoreapp1.0": {
      "imports": "dnxcore50",
      "dependencies": {
        "Microsoft.NETCore.App": {
          "type": "platform",
          "version": "1.0.1-*"
        }
      }
    }
  }
}

【讨论】:

    猜你喜欢
    • 2021-03-19
    • 2018-02-18
    • 2011-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多