当我在VS 2017包管理器控制台中使用dotnet ef工具时,我得到了一个需要更新ef核心工具的警告消息:
PM> dotnet ef migrations list -s ../RideMonitorSite
The EF Core tools version '2.1.1-rtm-30846' is older than that of the runtime '2.1.2-rtm-30932'. Update the tools for the latest features and bug fixes.
20180831043252_Initial
但是我的csproj文件有这样的条目:
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.1.2" />
</ItemGroup>
我已经确认安装的版本实际上已经过时了:
PM> dotnet ef --version
Entity Framework Core .NET Command-line Tools
2.1.1-rtm-30846
那么我该怎么更新工具呢?顺便说一句,我在其他答案中看到过一个过时的全局。Json文件会导致这个问题。但是我没有全局。Json文件在解决方案的任何地方。
要解决这个问题,你可以采用以下技巧之一:
技术1:使用包管理器控制台(特别是Microsoft Visual Studio用户)PM>安装-Package Microsoft. entityframeworkcore . tools -Version 2.1.2
技术二:使用。net CLI > dotnet添加包Microsoft.EntityFrameworkCore.Tools—version 2.1.2
技术3:使用包引用
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.1.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
技术四:使用Packet CLI >包添加Microsoft.EntityFrameworkCore.Tools—version 2.1.2
记住:要使用这个版本,你需要NuGet 3.6或更高版本。
参考链接:https://www.nuget.org/packages/Microsoft.EntityFrameworkCore.Tools/2.1.2
对我有效的解决方案是在包管理器控制台中运行以下命令:
PM> Install-Package Microsoft.EntityFrameworkCore -Version 2.1.11
PM> Install-Package Microsoft.EntityFrameworkCore.Tools -Version 2.1.11
确保版本与错误消息中的版本匹配,在我的情况下,我得到了以下错误:
The EF Core tools version '2.1.1-rtm-30846' is older than that of the runtime '2.1.11-servicing-32099'. Update the tools for the latest features and bug fixes.
查看以下站点的可用版本:
https://www.nuget.org/packages/Microsoft.EntityFrameworkCore/