当我在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文件在解决方案的任何地方。
对我有效的解决方案是在包管理器控制台中运行以下命令:
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/
像马丁
使用命令行,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版本