【问题标题】:This version of the Entity Framework Core Package Manager Console Tools doesn't support these types of projects此版本的 Entity Framework Core 包管理器控制台工具不支持这些类型的项目
【发布时间】:2017-03-30 08:56:50
【问题描述】:

使用此tutorial将现有项目更新到 ASP.NET Core 1.1 和 Entity Framework Core 1.1 后
我尝试在包管理控制台中执行“Add-Migration MigrationName”但出现错误:

启动项目 'src\ProjectName' 是 ASP.NET Core 或 .NET Core Visual Studio 2015 的项目。此版本的实体框架 核心包管理器控制台工具不支持这些类型的 项目。

我正在使用 VS 2015 更新 3。
项目.json

{
  "dependencies": {
    "CoursesManagement.DAL": "1.0.0-*",
    "Microsoft.AspNetCore.Diagnostics": "1.1.1",
    "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.1.1",
    "Microsoft.AspNetCore.Mvc": "1.1.2",
    "Microsoft.AspNetCore.Server.IISIntegration": "1.1.1",
    "Microsoft.AspNetCore.Server.Kestrel": "1.1.1",
    "Microsoft.AspNetCore.StaticFiles": "1.1.1",
    "Microsoft.Extensions.Configuration.FileExtensions": "1.1.1",
    "Microsoft.Extensions.Configuration.Json": "1.1.1",
    "Microsoft.Extensions.Logging.Console": "1.1.1",
    "Microsoft.EntityFrameworkCore.SqlServer": "1.1.1",
    "Microsoft.NETCore.App": "1.1.1",
    "Microsoft.EntityFrameworkCore": "1.1.1",
    "Microsoft.EntityFrameworkCore.Tools": {
      "version": "1.1.0",
      "type": "build"
    },
    "Microsoft.EntityFrameworkCore.Design": "1.1.1"
  },

  "tools": {
    "Microsoft.EntityFrameworkCore.Tools": "1.1.0",
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final",
    "Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final"
  },

  "frameworks": {
    "netcoreapp1.1": {
      "dependencies": {
      },
      "imports": [
        "dotnet5.6",
        "portable-net45+win8"
      ]
    }
  },

  "runtimes": {
    "win10-x64": {}
  },

  "buildOptions": {
    "emitEntryPoint": true,
    "preserveCompilationContext": true
  },

  "runtimeOptions": {
    "configProperties": {
      "System.GC.Server": true
    }
  },

  "publishOptions": {
    "include": [
      "wwwroot",
      "web.config"
    ]
  },

  "scripts": {
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
  }
}

global.json

{
  "projects": [ "src" ],
  "sdk": {
    "version": "1.0.0-preview2-003131"
  }
}

【问题讨论】:

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


    【解决方案1】:

    正如this博客中提到的,

    我们现在鼓励大家从 project.json 迁移到 MSBuild 和 csproj。如上所述,我们将不支持 Visual Studio 2015 中的任何新的 .NET Core 工具。我们也不会更新基于 Visual Studio 2015 project.json 的工具。

    您正在使用不支持 project.json 的 EFCore.Tools 包版本 1.1.0。 project.json 的工具从未达到 RTM。适用于 EF Core 1.1 包的预览版本是 EFCore.Tools 1.1.0-preview4-final

    也如其他答案中所述,如果您想使用 powershell 命令,则需要安装EFCore.Tools 包,但如果您想要dotnet ef,则需要安装EFCore.Tools.DotNet(版本1.1.0-preview3-final自preview4-final有小问题)。

    如上所述,基于 project.json 的工具不会有任何更新。您仍然可以使用上述预览包,但最好的选择是尽可能迁移到 VS2017 csproj。

    【讨论】:

      【解决方案2】:

      根据官方 ASP.NET Core 团队公告(请参阅 GitHub),Microsoft.EntityFrameworkCore.Tools 包被拆分为 Microsoft.EntityFrameworkCore.ToolsMicrosoft.EntityFrameworkCore.Tools.DotNet

      如果你想继续使用dotnet ef命令,你需要参考后面的。如果您只想使用旧的 powershell 样式命令(Database-UpdateAdd-Migration 等),旧的包应该足够了。

      引用Microsoft.EntityFrameworkCore.Tools.DotNet``there is no need to also reference ``Microsoft.EntityFrameworkCore.Tools 时。

      Quote by Rowan Miller

      如果您使用的是 ASP.NET Core,那么您需要更新工具 project.json 的部分以使用新的 Microsoft.EntityFrameworkCore.Tools.DotNet 包(而不是 Microsoft.EntityFrameworkCore.Tools 包)。

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

      正如 .NET CLI Tools 的设计所具有的 进步了,我们有必要分离dotnet ef 工具放入这个单独的包中。 Microsoft.EntityFrameworkCore.Tools 仍用于包管理器控制台命令。

      既然 EF Core 已经发布,当然应该是这样

       "tools": {
         "Microsoft.EntityFrameworkCore.Tools.DotNet": "1.0.0" 
       },
      

      另外请注意,这些工具不与 EF 本身共享版本。工具的最新版本仍然是 Tools.DotNet 的 1.0.0(参见 Nuget)和 Tools 的 1.1.0(参见 Nuget again)。

      【讨论】:

        【解决方案3】:

        我相信 .NET Core 和 EF Core 中的逗号是不同的。

        试试

        dotnet ef migrations add MigrationName
        

        dotnet ef database update
        

        Here are the dotnet cli commands

        【讨论】:

          猜你喜欢
          • 2017-11-11
          • 2017-12-06
          • 2020-10-12
          • 2020-10-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-08-24
          相关资源
          最近更新 更多