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


当前回答

试试这个: 安装包Microsoft.EntityFrameworkCore.Tools

如果问题仍然存在,则执行以下命令: 更新包Microsoft.EntityFrameworkCore.Tools

其他回答

在您的应用程序中,Dot.net核心库版本为2.1.2,而您正在使用实体框架核心(2.1.1)的2.1.1。 因此,更新你的库版本,它应该等于。net核心版本(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/

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

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

像马丁 使用命令行,Cmd或PowerShell的特定版本:

Dotnet工具更新——global Dotnet -ef——3.1.0版本

或最新版本使用(也适用于重新安装):

Dotnet工具更新——global Dotnet -ef

但是,我的电脑出了问题: “在不指定任何版本的情况下运行命令时,我得到了以下错误:工具'dotnet-ef'失败更新,由于以下原因:工具包不能被恢复”Liko pipop46

所以,我使用这些步骤:

卸载Dotnet工具 但遇到了同样的问题,所以我去到扩展的目录: C:\Users\ Evan.dotnet \ tools.store \ dotnet-ef

我找到了旧版本(2.x) 我的第二个问题是文件fileproject。assets。json没有找到

所以我复制了fileproject。assets。json在2。X版本到父存储库

一切都做得很完美:

卸载Dotnet工具 去掉2。x版本 安装Dotnet工具 安装3.1版本