EF Core 1.1-preview1添加遷移錯誤

.net-core entity-framework-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.

project.json的小型控制台App進行測試

{
  "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

我也嘗試使用發布帖子中建議的Microsoft.EntityFrameworkCore.Tools.DotNet,但是它有同樣的問題,它不能識別dotnet-ef。

有人有類似的問題嗎?

一般承認的答案

我發現您可以使用命令行執行此操作,因此不在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,執行我想在數據庫上運行的任何命令,然後恢復到最新的目標框架。


熱門答案

這個線程在這種情況下有所啟發。

工具依賴於某個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/



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow