Need to Update EF Core Tools

Entity Framework-Core

Entity Framework-Core Problem Overview


When I use the dotnet ef tools in the VS 2017 Package Manager Console I get a warning message about needing to update EF Core tools:

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

But my csproj file has this entry:

  <ItemGroup>
    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.1.2" />
  </ItemGroup>

I've confirmed that the version installed is, in fact, out of date:

PM> dotnet ef --version
Entity Framework Core .NET Command-line Tools
2.1.1-rtm-30846

So what do I do to update the tools? BTW, I've seen in other answers that an out of date global.json file can cause this problem. But I don't have a global.json file anywhere in the solution.

Entity Framework-Core Solutions


Solution 1 - Entity Framework-Core

Use command line, Cmd or PowerShell for specific version:

dotnet tool update --global dotnet-ef --version 3.1.0

or for latest version use (works also for reinstallation):

dotnet tool update --global dotnet-ef

Solution 2 - Entity Framework-Core

I bounced this issue over to the development team over on github. Turns out this is a known issue in the current tooling or nuget packages that get loaded when you create an EF Core-powered AspNet Core site. It's targeted to be fixed in a future release.

For now, the workaround is simply to ignore the warning.

Another workaround is also offered, involving tweaking the csproj file to define the version of the AspNet Core metapackage explicitly -- it's up to 2.1.3 as I'm writing this -- but I couldn't get that approach to work; I still kept getting the warning message.

Solution 3 - Entity Framework-Core

The solution that worked for me is running the following commands in Package Manager Console:

PM> Install-Package Microsoft.EntityFrameworkCore -Version 2.1.11
PM> Install-Package Microsoft.EntityFrameworkCore.Tools -Version 2.1.11

Make sure the version matches the one in the error message in my case I got the following error:

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.

Check the versions available from the following site: https://www.nuget.org/packages/Microsoft.EntityFrameworkCore/

Solution 4 - Entity Framework-Core

Try this one: Install-Package Microsoft.EntityFrameworkCore.Tools

If problem still occurs, then execute this also: Update-Package Microsoft.EntityFrameworkCore.Tools

Solution 5 - Entity Framework-Core

for .NET 6, it would be

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

Solution 6 - Entity Framework-Core

My solution was to install the tool dotnet-ef from microsoft https://www.nuget.org/packages/dotnet-ef. It uses the same commands but no warnings. The change is to use dotnet-ef instead of dotnet ef.

And if you already have dotnet-ef installed then use dotnet tool update --global dotnet-ef --version n.n.n (n.n.n your version to update to)

Solution 7 - Entity Framework-Core

To Solve This Issue You May Follow One Of The Following Techniques:


  • Technique 1: Using Package Manager Console(Especially for Microsoft Visual Studio user)
    PM> Install-Package Microsoft.EntityFrameworkCore.Tools -Version 2.1.2

  • Technique 2: Using .NET CLI
    > dotnet add package Microsoft.EntityFrameworkCore.Tools --version 2.1.2

  • Technique 3: Using Package Reference

<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.1.2">
  <PrivateAssets>all</PrivateAssets>
  <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>

  • Technique 4: Using Packet CLI
    > paket add Microsoft.EntityFrameworkCore.Tools --version 2.1.2

> Remember: For this version to use you need NuGet 3.6 or higher.
> Reference Link: https://www.nuget.org/packages/Microsoft.EntityFrameworkCore.Tools/2.1.2

Solution 8 - Entity Framework-Core

Install a new .NET Core SDK v2.1.401 version and check >dotnet ef --version again. I had the same issue and in my case, that worked. Also, you don't need to add Microsoft.EntityFrameworkCore.Tools.DotNet.

Solution 9 - Entity Framework-Core

  • Ignore the issue
  • Do not update your < PackageReference Include = " Microsoft . EntityFrameworkCore . Tools " Version ="" / >
  • In my case, I moved forward with 'Update-Database -Context MyElementContext' and now it is all working fine.

I found this in the book 'Programming ASP.NET Core' by Dino Esposito.

'Note This version of the CLI tooling is not the same as the version of the .NET Core runtime the application will use. The runtime version is specified in the project file, and you can comfortably edit it from within the user interface of the IDE of your choice. If you want, instead, to edit the project file manually, then it is as easy as editing the .csproj XML fi le and changing the value of the TargetFramework element. The value refers to the moniker that identifies the version (such as netcoreapp2.0).'

Solution 10 - Entity Framework-Core

I couldn't find how to update the package specifically, but in the Package Manager Console I ran 'update-package'. It ran through and updated all packages referenced in a project, including the EF Core Tools. That may not be ideal for you as that could update packages you didn't want.

Solution 11 - Entity Framework-Core

Following the steps in this document helped me solve the problem - https://docs.oracle.com/cd/E17952_01/connector-net-en/connector-net-entityframework-core-scaffold-example.html

Scaffolding a Database Using Package Manager Console in Visual Studio

  • Open Visual Studio and create a new Console App (.NET Core) for C#.
  • Add the MySQL NuGet package for EF Core using the Package Manager Console. For example, use the following command to add the MySql.Data.EntityFrameworkCore v8.0.13 package:

> Install-Package MySql.Data.EntityFrameworkCore -Version 8.0.13

Important

The version (for example, -Version 8.0.13) must match the actual Connector/NET version you are using. For current version information.

  • Install the following NuGet packages by selecting either Package Manager Console or Manage NuGet Packages for Solution from the Tools and then NuGet Package Manager menu:

     Microsoft.EntityFrameworkCore.Design
    
     EF Core 1.1 only: Also add the MySql.Data.EntityFrameworkCore.Design package.
    
     Microsoft.EntityFrameworkCore.Tools version 1.1.6 (for EF Core 1.1) and Microsoft.EntityFrameworkCore.Tools version 2.0.3 (for EF Core 2.0)
     Note
    
     The .NET tools are included in the .NET Core 2.1 SDK and not required or supported for EF Core 2.1. If this is an upgrade, remove the reference to that package from the .csproj file (version 2.0.3 in this example) :
    
     <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.3" />
    

    Open Package Manager Console and enter the following command at the prompt to create the entities and DbContext for the sakila database (adjust the connection-string values to match your settings for the user= and password= options):

> Scaffold-DbContext "server=localhost;port=3306;user=root;password=mypass;database=sakila" > MySql.Data.EntityFrameworkCore -OutputDir sakila -f

Visual Studio creates a new sakila folder inside the project, which contains all the tables mapped to entities and the sakilaContext.cs file.

Even though the Oracle instructions said that Microsoft.EntityFrameworkCore.Tools was not needed for EF Core 2.1 I installed the version 2.2.0 that is compatible with EF 2.2

Solution 12 - Entity Framework-Core

Update EF Core tools using dotnet CLI or Package Manager Console or visiting
this site https://www.nuget.org/packages/Microsoft.EntityFrameworkCore.Tools/2.1.2

Or you may ignore this. It's not a big issue...

Solution 13 - Entity Framework-Core

In your application, Dot.net core library version is 2.1.2 and you are working on 2.1.1 of Entity framework core(2.1.1). So, Update your library version which should be equal to dot.net core version (2.1.2).

Solution 14 - Entity Framework-Core

I got this error multiple times my packages was up to date in NuGet package manager So I modified (.csproj) with note pad to the desired version and it solved my problem.

Solution 15 - Entity Framework-Core

Like Martin Use command line, Cmd or PowerShell for specific version:

dotnet tool update --global dotnet-ef --version 3.1.0

or for latest version use (works also for reinstallation):

dotnet tool update --global dotnet-ef

But, I've got probleme in my pc : "When running the command whitout specifying any version i got the following error: Tool 'dotnet-ef' failed to update due to the following: The tool package could not be restored" Liko Pippo46

So, I use these steps :

> dotnet tool uninstall --global dotnet-ef > But got the same problem, so I'm going to the directory of the extension : C:\Users\Evan.dotnet\tools.store\dotnet-ef

And I found the old version (2.x) And my second problem was the file fileproject.assets.json was not found

So I copy the fileproject.assets.json in the 2.x version to the parent repository

And all was done perfectly :

  1. dotnet tool uninstall --global dotnet-ef > removes the 2.x version

  2. dotnet tool install --global dotnet-ef > install the 3.1 one

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionMark OlbertView Question on Stackoverflow
Solution 1 - Entity Framework-CoreMartinView Answer on Stackoverflow
Solution 2 - Entity Framework-CoreMark OlbertView Answer on Stackoverflow
Solution 3 - Entity Framework-CorePatee GuteeView Answer on Stackoverflow
Solution 4 - Entity Framework-CoreLemrajView Answer on Stackoverflow
Solution 5 - Entity Framework-Coreunos baghaiiView Answer on Stackoverflow
Solution 6 - Entity Framework-CorejoakimjaView Answer on Stackoverflow
Solution 7 - Entity Framework-CoreMd WahidView Answer on Stackoverflow
Solution 8 - Entity Framework-CoresurbaniakView Answer on Stackoverflow
Solution 9 - Entity Framework-CoreGioLoperaView Answer on Stackoverflow
Solution 10 - Entity Framework-CoremalckierView Answer on Stackoverflow
Solution 11 - Entity Framework-CoreMauricio Gracia GutierrezView Answer on Stackoverflow
Solution 12 - Entity Framework-Coreuser12577046View Answer on Stackoverflow
Solution 13 - Entity Framework-CoreSher SinghView Answer on Stackoverflow
Solution 14 - Entity Framework-Corepaywand dlshad nejeebView Answer on Stackoverflow
Solution 15 - Entity Framework-CoreevanboissonnotView Answer on Stackoverflow