EF Core 1.1-preview1添加迁移错误

时间:2016-11-03 11:52:03

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

我正在尝试将我的网络核心项目更新为1.1-preview以及EF核心到同一版本。恢复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。

有人有类似的问题吗?

2 个答案:

答案 0 :(得分:2)

我发现您可以使用命令行执行此操作,因此不在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)

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 && dotnet restore。如果失败,请尝试rm -rf obj/

另外