error NU1202: Package Microsoft.EntityFrameworkCore 10.0.14 is not compatible with net8.0 (.NETCoreApp,Version=v8.0). means that version of the package has no build for your project's target framework. The end of the message says what it does support, here only net10.0, so a .NET 8 project cannot use it.

Pick the package version made for your framework, --version 8.0.33 for EF Core on .NET 8, or move the project to the framework the package names. The "supports" list in the message, or the Frameworks tab on nuget.org, tells you which.

The error

...\Net8Lab\Net8Lab.csproj : error NU1202: Package Microsoft.EntityFrameworkCore 10.0.14 is not compatible with net8.0 (.NETCoreApp,Version=v8.0). Package Microsoft.EntityFrameworkCore 10.0.14 supports: net10.0 (.NETCoreApp,Version=v10.0)
  Failed to restore ...\Net8Lab\Net8Lab.csproj (in 231 ms).

Before that, dotnet add package Microsoft.EntityFrameworkCore without a version had chosen 10.0.14, printed the same NU1202 and Package 'Microsoft.EntityFrameworkCore' is incompatible with 'all' frameworks in project, and left the project file unchanged.

Why it happens

A package carries its assemblies per target framework, and NuGet picks the folder that fits your project. EF Core 10.0.14 ships only a net10.0 build, and an assembly built for .NET 10 cannot be loaded by a .NET 8 project, so there is nothing to pick. dotnet add package without --version took the newest stable release whatever the project targets, which is how a .NET 8 project meets a .NET 10 package. EF Core 8.0.33, the newest 8.0 release on the day of the test, restored on net8.0 without a warning.

The same code appears for platform builds. A plain net10.0 class library given Xamarin.AndroidX.Core 1.19.1 got Package Xamarin.AndroidX.Core 1.19.1 is not compatible with net10.0 (.NETCoreApp,Version=v10.0). Package Xamarin.AndroidX.Core 1.19.1 supports: net10.0-android36.0; changing the library to <TargetFramework>net10.0-android</TargetFramework> let the same command succeed. A package built only for .NET Framework did not give NU1202 at all: Microsoft.AspNet.WebApi.Core 5.3.0 restored into net10.0 with warning NU1701, "restored using '.NETFramework,Version=v4.6.1, ...' instead of the project target framework", and "may not be fully compatible". That one installs, with only the warning to say it was built for .NET Framework.

The fix

dotnet add package Microsoft.EntityFrameworkCore --version 8.0.33
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.33" />

dotnet build then printed Build succeeded. with no warnings. To find the right version, open the package on nuget.org: the framework badge on 10.0.14's page reads "This package targets .NET 10.0", and its Frameworks tab lists every framework that version is compatible with. Open older versions from the Versions tab until the Frameworks tab shows yours. The other fix is to retarget the project to net10.0, if the rest of the solution can follow; a copy of the test project changed that way built with 10.0.14 and no warnings.

How it was reproduced

A console project created with dotnet new console -n Net8Lab -o Net8Lab --framework net8.0, EF Core 10.0.14 referenced by hand and by dotnet add package, then 8.0.33. A net10.0 class library with Xamarin.AndroidX.Core 1.19.1 (the android workload 36.1.118 was installed) and a net10.0 console with Microsoft.AspNet.WebApi.Core 5.3.0. .NET SDK 10.0.403 on Windows 11, packages from nuget.org on Oct 30, 2026.

Frequently asked

Which EF Core version works with .NET 8?
EF Core 8.0.x. EF Core 10.0.14 supports only net10.0, so a net8.0 project gets NU1202. Install with dotnet add package Microsoft.EntityFrameworkCore --version 8.0.33 or the newest 8.0 release.
Why does dotnet add package install a version that does not support my project?
Without --version it takes the newest stable release, whatever framework your project targets. For a net8.0 project and EF Core that meant 10.0.14, which failed with NU1202 and was not added.
What is the difference between NU1202 and NU1701?
NU1202 is an error: the package has no build your framework can use. NU1701 is a warning: a .NET Framework build was used through a fallback list, and NuGet says it may not be fully compatible.

When the version does not exist at all, the error is NU1102 instead: see Unable to find package with version. More decoded errors in the Fixes category.