【问题标题】:Entity Framework Core - Cannot Add First MigrationEntity Framework Core - 无法添加首次迁移
【发布时间】:2017-06-17 05:56:22
【问题描述】:

我正在尝试创建我在 Visual Studio 2015 中开发的 ASP.Net Core 项目的第一次迁移。我的解决方案只有一个项目。我的project.json 文件位于我的项目文件夹的根目录中。

我右键单击项目并选择“打开命令行>默认”并输入以下内容:

dotnet ef migrations add InitialDatabase

命令行返回:

No project was found. Change the current working directory or use the --project option.

我已经尝试了所有不同版本的 EntityFrameworkCore 和 Tools。我的project.json文件如下:

{
  "dependencies": {
    "Microsoft.AspNet.Tooling.Razor": "1.0.0-rc1-final",
    "Microsoft.AspNetCore.Diagnostics": "1.0.1",
    "Microsoft.AspNetCore.Mvc": "1.0.1",
    "Microsoft.AspNetCore.Mvc.TagHelpers": "1.0.1",
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.1",
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.1",
    "Microsoft.AspNetCore.StaticFiles": "1.0.1",
    "Microsoft.EntityFrameworkCore": "1.0.2",
    "Microsoft.EntityFrameworkCore.SqlServer": "1.0.2",
    "Microsoft.EntityFrameworkCore.Design": {
      "type": "build",
      "version": "1.0.2" 
    },
    "Microsoft.EntityFrameworkCore.Tools": {
      "type": "build",
      "version": "1.0.0-msbuild3-final"
    },
    "Microsoft.EntityFrameworkCore.Tools.DotNet": "1.0.0-msbuild3-final",
    "Microsoft.Extensions.Configuration.Json": "1.0.1",
    "Microsoft.Extensions.Logging.Console": "1.0.1",
    "Microsoft.NETCore.App": {
      "type": "platform",
      "version": "1.0.1"
    }
  },

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

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

  "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%" ]
  }
}

非常欢迎任何建议。谢谢。

【问题讨论】:

  • 指向有project.json的目录并执行命令。我认为您当前位于父文件夹(上一级)中。
  • 为我们试试这个:在 VS 中,打开包管理器控制台(如果你没有看到它,请转到 View -> Other Windows -> Package Manager Console)。在 PMC 中,拨打Add-Migration {YourMigrationNameHere}
  • 我认为在包管理器中使用 add-migration 现在已经被弃用了。

标签: visual-studio-2015 entity-framework-core


【解决方案1】:
"tools": {
  "Microsoft.EntityFrameworkCore.Tools.DotNet": "1.0.0-msbuild3-final"
}

版本 1.0.0-msbuild3-final 仅适用于基于 MSBuild 的新项目(不适用于 project.json)。请改用1.0.0-preview3-final 版本。

【讨论】:

  • 好建议@bricelam。偶然地,昨晚我尝试使用以下组合:"Microsoft.EntityFrameworkCore": "1.0.2""Microsoft.EntityFrameworkCore.Design": "1.0.0-preview2-final""Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final""Microsoft.EntityFrameworkCore.Tools.DotNet": "1.0.0-msbuild3-final",它奏效了。作为一个刚接触 ASP.Net Core 的开发人员,很难找到能够和谐地协同工作的包的正确组合。我应该试试1.0.0-preview3-final吗?
  • project.json 切换到 MSBuild 时,工具的故事有点混乱。当工具最终 RTM(与 VS 2017)时,EF 的故事至少将确保所有主要和次要版本号都亮起(例如 1.0 或 1.1,但不混合)正在努力简化您的工作方式获得一组单一、连贯的 .NET Core 包...
  • 很高兴知道。像许多人一样,我敢肯定,我期待它安定下来。
  • 如果这是答案,那么您可以接受吗? @TDC
  • 我会,但@bricelam 建议我使用版本1.0.0-preview3-final,我发现使用1.0.0-preview2-final 一切正常。我实际上不知道建议的版本是否可以解决我的问题,就像我想将其标记为正确一样。道德困境!
【解决方案2】:

dotnet-ef 命令已移动。

您需要添加对 Microsoft.EntityFrameworkCore.Tools.DotNet AND Microsoft.EntityFrameworkCore.Design 到您的依赖项 project.json,然后将 Microsoft.EntityFrameworkCore.Tools.DotNet 添加到工具部分,您应该可以开始了。

引用自:http://errummwelluhh.blogspot.com。 我也为同一问题发布了相同的答案here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-06
    • 2019-01-11
    • 1970-01-01
    • 2019-01-18
    • 2019-02-24
    • 2018-06-08
    • 1970-01-01
    • 2017-10-27
    相关资源
    最近更新 更多