当我在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文件在解决方案的任何地方。


当前回答

安装一个新的。net Core SDK v2.1.401版本,并再次检查>dotnet ef——version。我也有同样的问题,对我来说,这很有效。此外,您不需要添加Microsoft.EntityFrameworkCore.Tools.DotNet。

其他回答

我在github上把这个问题转给了开发团队。事实证明,这是一个已知的问题,在当前的工具或nuget包中,当你创建一个EF Core驱动的AspNet Core站点时加载。这个问题将在未来的版本中修复。

目前,解决方法是忽略该警告。

还提供了另一种解决方案,包括调整csproj文件来明确定义AspNet核心元包的版本——当我写这篇文章时,它已经达到2.1.3了——但我无法让这种方法工作;我还是不断收到警告信息。

对我有效的解决方案是在包管理器控制台中运行以下命令:

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/

对于。net 6,就是这样

dotnet tool update --global dotnet-ef --version 6.0.0

我的解决方案是从微软https://www.nuget.org/packages/dotnet-ef安装工具dotnet-ef。它使用相同的命令,但没有警告。变化是使用dotnet-ef而不是dotnet ef。

如果你已经安装了。net-ef,那么使用 Dotnet工具更新——global Dotnet -ef——version N.N.N (N.N.N您要更新到的版本)

通过dotnet CLI或Package Manager Console或访问更新EF Core工具 这个网站https://www.nuget.org/packages/Microsoft.EntityFrameworkCore.Tools/2.1.2 或者你可以忽略这一点。这不是什么大问题……