当我在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
像马丁
使用命令行,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版本