Efcore: error NU1202: Package dotnet-ef 3.0.1 is not compatible with netcoreapp3.0

Created on 19 Nov 2019  路  37Comments  路  Source: dotnet/efcore


I'm installing dotnet-ef 3.0.1 on Azure DevOps release pipeline with dotnetcore 3.0; installation fails with incompatibility error.

Steps to reproduce

Run

dotnet tool install --global dotnet-ef --version 3.0.1

Expected

Tool 'dotnet-ef' (version '3.0.1') was successfully installed.

Actual

error NU1202: Package dotnet-ef 3.0.1 is not compatible with netcoreapp3.0 (.NETCoreApp,Version=v3.0) / any. Package dotnet-ef 3.0.1 supports: netcoreapp2.1 (.NETCoreApp,Version=v2.1)

Further technical details

EF Core version: 3.0
dotnet-ef version: 3.0.1

Issue is NOT seen in dotnet-ef version 3.0.0. I'm currently using this version to resolve the issue.

closed-fixed customer-reported regression type-bug

Most helpful comment

@bricelam Presumably the workaround for anyone hitting this is to install the 3.0.0 version explicitly?

dotnet tool install --global dotnet-ef --version 3.0.0

All 37 comments

same here, does it mean that dotnet-ef 3.0.1 is for .NET Core 3.1 ?

same here, and dotnet tool install --global dotnet-ef --version 3.0.0-* is not affected too.
It seems that the one for .NET Core 3.1 is dotnet-ef 3.1.0.

I think this issue a typo netcoreapp2.1 instead of netcoreapp3.0.

Guess there is a bug that was meant to be netcoreapp >= 2.1 instead of netcoreapp == 2.1.
3.0.0 also shows netcoreapp2.1 as dependency but works as expected

@bricelam @Pilchie @dougbu Looks possible from this that the package for dotnet-ef was not built correctly.

image

image

I'm assuming we didn't make any changes to dotnet-ef in 3.0.1? Should we just unlist the package and tell people to keep using the 3.0.0 version?

I fixed the package in release/3.1 for 3.1.0-preview2, but it looks like it also got broken in release/3.0. I can backport the fix.

Does someone know when this issue will be fixed?

@Pilchie Is unlisting enough to prevent dotnet tool install from picking it? I suppose it will be once we ship 3.1.0.

I think it will, but looping in @nguerrera to confirm.

@wli3

I don鈥檛 know so I鈥檝e added Will to confirm

Right now without fix in 3.0.1 you cannot run dotnet ef commands when on .net core 3.0.100. You get smth like this
The EF Core tools version '3.0.0' is older than that of the runtime '3.0.1'. Update the tools for the latest features and bug fixes.

@bricelam Presumably the workaround for anyone hitting this is to install the 3.0.0 version explicitly?

dotnet tool install --global dotnet-ef --version 3.0.0

I've got 3.0.0 installed and it still errors with.

"The EF Core tools version '3.0.0' is older than that of the runtime '3.0.1'. Update the tools for the latest features and bug fixes."

@nkolev92 can unlist stop nuget restore "*" that version? I heard from Gallery folks that unlist only controls nuget.org's search

@Kant8 and @derekforeman I have the 3.0.0 version of dotnet-ef installed as well as the 3.0.100 SDK. I'm not seeing the inability to roll forward you describe.

> dotnet --version
3.0.100

> dotnet ef --version
Entity Framework Core .NET Command-line Tools
3.0.0

> dotnet ef migrations list
info: Microsoft.EntityFrameworkCore.Infrastructure[10403]
      Entity Framework Core 3.0.0 initialized 'ApplicationDbContext' using provider 'Microsoft.EntityFrameworkCore.SqlServer' with options: None
00000000000000_CreateIdentitySchema

What's different in your environment?

When taking ajcvickers recommendation to explicitly install 3.0.0, I no longer receive the error message.

Tagging @JunTaoLuo who was interested in this.

@nkolev92 can unlist stop nuget restore "*" that version? I heard from Gallery folks that unlist only controls nuget.org's search

That is correct, unlist only affects search.

In my Azure Devops Pipeline I have a task using EF-Migrations-Script-Generator-Task. This task has a checkbox to install dotnet-ef for Core 3.x projects
image

... but this now fails because it is installing dotnet-ef 3.0.1

I have unchecked that option the added another task before:
image

My Pipeline is now building again. Obviously I'm keen to undo this when the "latest version" option works, but it will suffice for now.

@dougbu Completely the same, but I also had Microsoft.EntityFrameworkCore.SqlServer of version 3.0.1. I've downgraded this one too and now everything works perfectly.

I have both the 3.0.100 and 3.0.101 SDKs installed so I pegged my project to the 3.0.100 SDK by placing a global.json file in my root with the following:

{
  "sdk": {
    "version": "3.0.100"
  }
}

and then ran the command @ajcvickers suggested above.

Hopefully 3.1 ships soon so we can forget about 3.0 馃槂

I don't know why, but specifying a patch number didn't work for me, so i just used:

dotnet tool install --global dotnet-ef --version 3.0

It's working properly now. Hope this helps, until we get the next patch working!

@KbKev78, I鈥檝e updated EF-Migrations-Script-Generator-Task so you are able to specify which version of dotnet-ef to be install. If you enter 3.0.0 you should be fine. I hope this makes the problem easier to deal with until it鈥檚 solved.

@pekspro,

@KbKev78, I鈥檝e updated EF-Migrations-Script-Generator-Task so you are able to specify which version of dotnet-ef to be install. If you enter 3.0.0 you should be fine. I hope this makes the problem easier to deal with until it鈥檚 solved.

Nice job, thanks.
I have now removed that additional step.

Once the underlying issue is resolved I will clear that version number.

Oh, and that's a nice plugin, by the way. Cheers.

I have "dotnet ef" version 3.0.0 installed. Now command "dotnet ef dbcontext scaffold ..." stopped working, giving this message: "The EF Core tools version '3.0.0' is older than that of the runtime '3.0.1'. Update the tools for the latest features and bug fixes." What should i do to fix it? I cannot install "dotnet ef 3.0.1" because of subject error message.

@sibeliuz check you do not have any EFCore related dependencies in project of version 3.0.1. You probably have Microsoft.EntityFrameworkCore.Design 3.0.1 (or ...SqlServer, etc.)

The EF Core tools version '3.0.0' is older than that of the runtime '3.0.1'. Update the tools for the latest features and bug fixes.

For me it is just a warning, and command still works after printing it.

It is weird,but for me helped add
var connectionString = Configuration.GetConnectionString("IdentityServerConnection");
services.AddDbContext(options => ...
I've used different DbContext here before.

The EF Core tools version '3.0.0' is older than that of the runtime '3.0.1'. Update the tools for the latest features and bug fixes.

For me it is just a warning, and command still works after printing it.

Yes, it turns out it is just a warning and everything functioned as intended for me.

I am not sure whether it is appropriate to make suggestion here, and I found that this message is extremely confusing and lacks of explaination on what's happening underneath. If this message is only intended as a warning message, then at a minimal extent, it should has some sort of hints (i.e. [WARNING]) to tell the user it is a warning indeed,

Thanks!

@chungonion It's not actually even a warning. It's just letting you know that you're not running the latest so you won't be getting the latest features and bug fixes.

@chungonion It's not actually even a warning. It's just letting you know that you're not running the latest so you won't be getting the latest features and bug fixes.

@ajcvickers That's why some sort of indications should be displayed in the terminal

I follow the suggestion from here:
https://github.com/aspnet/EntityFrameworkCore/issues/18977#issuecomment-556092925
and the error was gone.
Now, I can run the entity framework command line interface.

in .csproj file:

<PackageReferenceInclude="Microsoft.EntityFrameworkCore"Version="3.0.0"/>
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.0.0"/>

it helps me. i guess they have to be same version.

I just started a completely new webapi via Visual Studio and I'm getting the error below when I'm trying to install dotnet-ef 3.1.8

Package dotnet-ef 3.1.8 is not compatible with netcoreapp3.1 (.NETCoreApp,Version=v3.1). Package dotnet-ef 3.1.8 supports: netcoreapp3.1 (.NETCoreApp,Version=v3.1) / any
Invalid project-package combination for dotnet-ef 3.1.8. DotnetToolReference project style can only contain references of the DotnetTool type 

@juliofalbo Hi, it looks like you are posting on a closed issue/PR/commit!

We're very likely to lose track of your bug/feedback/question unless you:

  1. Open a new issue
  2. Explain very clearly what you need help with
  3. If you think you have found a bug, include detailed repro steps so that we can investigate the problem
Was this page helpful?
0 / 5 - 0 ratings