【问题标题】:EF Core 1.1-preview1 Add-Migration errorEF Core 1.1-preview1 添加迁移错误
【发布时间】:2016-12-03 04:02:37
【问题描述】:

我正在尝试将我的 net core 项目更新为 1.1-preview 以及 EF core 到相同的版本。恢复 project.json 工作正常,但是一旦我尝试使用 Add-Migration 之类的命令,它就会失败并出现以下错误:

Commands could not invoke on target framework 'netcoreapp1.1'.
Commands on ASP.NET Core and .NET Core projects currently only support .NET Core ('netcoreapp1.0') or .NET Framework (e.g. 'net451') target frameworks.

待测试的小控制台App的project.json

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

  "dependencies": {
    "Microsoft.NETCore.App": {
      "type": "platform",
      "version": "1.1.0-preview1-*"
    },
    "Microsoft.EntityFrameworkCore": "1.1.0-preview1-final",
    "Microsoft.EntityFrameworkCore.Design": "1.1.0-preview1-final"
  },

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

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

我使用的是 Visual Studio 2015。是我遗漏了什么还是 Visual Studio 工具目前不支持 EF/.net Core 1.1?

在 EF/.net 1.0 上,它已经无法识别 Add-Migration 或 dotnet-ef 命令,因此要让它们正常工作,我必须按照此处所述手动初始化 EF 工具:https://stackoverflow.com/a/37876143/3506081

我还尝试按照release post 中的建议使用 Microsoft.EntityFrameworkCore.Tools.DotNet,但同样的问题是它无法识别 dotnet-ef。

有人遇到过类似的问题吗?

【问题讨论】:

  • 此问题已在 PR #17 中修复,应包含在 preview4 版本中。

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


【解决方案1】:

我发现您可以使用命令行来执行此操作,而不是在 Visual Studio 包管理器控制台中(奇怪,不知道为什么)。 请记住,命令并不完全相同,因此对于创建迁移,例如,您可以这样做:

dotnet ef migrations add InitialMigration

我也在用:

"Microsoft.EntityFrameworkCore.Tools.DotNet": "1.0.0-preview3-final"

并删除了旧工具。

我相信该工具尚未更新,无法与 Entity Framework Core 1.1 Preview 1 一起使用。因此,我所做的解决方法是将框架版本更改为 netcoreapp1.0,执行我想在数据库上运行的任何命令,然后恢复到最新的目标框架。

【讨论】:

  • 解决了。期待这些工具已经存在,只是像其他所有东西一样带有一些神秘的版本号:)
  • 现在我只是将目标框架保持在 1.0,到目前为止一切正常。如果遇到任何问题,将尝试使用命令行。
【解决方案2】:

thread 为这种情况提供了一些启示。

工具依赖于特定的 MSBuild 版本,因此请确保工具版本具有相同的版本。我已经让它在 Mac OSX Sierra 上运行了

.csproj

    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet">
      <Version>1.0.0-msbuild1-final</Version>
    </DotNetCliToolReference>
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet">
      <Version>1.0.0-msbuild1-final</Version>
    </PackageReference>
        <PackageReference Include="Microsoft.EntityFrameworkCore.Tools">
      <Version>1.0.0-msbuild1-final</Version>
    </PackageReference>

更改 .csproj 后,请确保运行 dotnet clean &amp;&amp; dotnet restore。如果失败,请尝试rm -rf obj/

还有

【讨论】:

    猜你喜欢
    • 2017-04-12
    • 1970-01-01
    • 1970-01-01
    • 2017-05-30
    • 2017-06-06
    • 1970-01-01
    • 2021-12-29
    • 1970-01-01
    • 2017-11-30
    相关资源
    最近更新 更多