我正在尝试将我的网络核心项目更新为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。
有人有类似的问题吗?
答案 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上运行了
<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/
另外