为什么在 Visual Studio 2019 年尝试使用 Entity Framework Core 构建 .Net Core 3.1 class 库时出现构建错误?

Why do I get build errors when attempting to build a .NetCore 3.1 class library with EntityFrameworkCore in Visual Studio 2019?

我在 Visual Studio 2019 年创建了一个 .Net Core 3.1(C# .Net Core 库)。 我正在尝试通过 NuGet 包管理器将 EntityFrameworkCore 添加到项目中。 尝试添加时我遇到了一些兼容性错误。

所以我们创建了项目并在不同的系统上添加了 EntityFrameworkCore。 尝试在 Visual Studio 2019 年在我的系统上构建这些项目时,我得到了 以下错误:

这是机器上安装的 .Net 和 .NetCore 运行时和 sdks 的快照:

以下是 dotnet restore 的结果: (部分上市)

Foo.WPFApp>dotnet restore Determining projects to restore... : warning NU1701: Package 'System.ComponentModel.Annotations 5.0.0' was restored using '.NETFramework,Version=v4.6.1, .NETFramework,Version=v4.6.2, .NETFramework,Version=v4.7, .NETFramework,Version=v4.7.1, .NETFramework,Version=v4.7.2, .NETFramework,Version=v4.8' instead of the project target framework '.NETCoreApp,Version=v3.1'. This package may not be fully compatible with your project. [Foo.WPFApp\Bar.WPFApp.sln] : error NU1202: Package Microsoft.EntityFrameworkCore 5.0.0 is not compatible with netcoreapp3.1 (.NETCoreApp,Version=v3.1). Package Microsoft.EntityFrameworkCore 5.0.0 does not support any target frameworks. [Foo.WPFApp\Bar.WPFApp.sln] : error NU1202: Package Microsoft.EntityFrameworkCore.Abstractions 5.0.0 is not compatible with netcoreapp3.1 (.NETCoreApp,Version=v3.1). Package Microsoft.EntityFrameworkCore.Abstractions 5.0.0 does not support any target frameworks. [Foo.WPFApp\Bar.WPFApp.sln] : error NU1202: Package Microsoft.Extensions.Caching.Memory 5.0.0 is not compatible with netcoreapp3.1 (.NETCoreApp,Version=v3.1). Package Microsoft.Extensions.Caching.Memory 5.0.0 does not support any target frameworks. [Foo.WPFApp\Bar.WPFApp.sln] : error NU1202: Package Microsoft.Extensions.DependencyInjection 5.0.0 is not compatible with netcoreapp3.1 (.NETCoreApp,Version=v3.1). Package Microsoft.Extensions.DependencyInjection 5.0.0 does not support any target frameworks. [Foo.WPFApp\Bar.WPFApp.sln] : error NU1202: Package Microsoft.Extensions.Logging 5.0.0 is not compatible with netcoreapp3.1 (.NETCoreApp,Version=v3.1). Package Microsoft.Extensions.Logging 5.0.0 does not support any target frameworks. [Foo.WPFApp\Bar.WPFApp.sln] : error NU1202: Package

以下是 dotnet 构建的结果: (部分上市)

Determining projects to restore... ....csproj : warning NU1701: Package 'System.ComponentModel.Annotations 5.0.0' was restored using '.NETFramework,Version=v4.6.1, .NETFramework,Version=v4.6.2, .NETFramework,Version=v4.7, .NETFramework,Version=v4.7.1, .NETFramework,Version=v4.7.2, .NETFramework,Version=v4.8' instead of the project target framework '.NETCoreApp,Version=v3.1'. This package may not be fully compatible with your project. [Foo.WPFApp\Bar.WPFApp.sln] ....csproj : error NU1202: Package Microsoft.EntityFrameworkCore 5.0.0 is not compatible with netcoreapp3.1 (.NETCoreApp,Version=v3.1). Package Microsoft.EntityFrameworkCore 5.0.0 does not support any target frameworks. [Foo.WPFApp\Bar.WPFApp.sln] ....csproj : error NU1202: Package Microsoft.EntityFrameworkCore.Abstractions 5.0.0 is not compatible with netcoreapp3.1 (.NETCoreApp,Version=v3.1). Package Microsoft.EntityFrameworkCore.Abstractions 5.0.0 does not support any target frameworks. [Foo.WPFApp\Bar.WPFApp.sln] ....csproj : error NU1202: Package Microsoft.Extensions.Caching.Memory 5.0.0 is not compatible with netcoreapp3.1 (.NETCoreApp,Version=v3.1). Package Microsoft.Extensions.Caching.Memory 5.0.0 does not support any target frameworks. [Foo.WPFApp\Bar.WPFApp.sln] ....csproj : error NU1202: Package Microsoft.Extensions.DependencyInjection 5.0.0 is not compatible with netcoreapp3.1 (.NETCoreApp,Version=v3.1). Package Microsoft.Extensions.DependencyInjection 5.0.0 does not support any target frameworks. [Foo.WPFApp\Bar.WPFApp.sln] ....csproj : error

有人可以帮我找出问题并解决吗?

我删除了我之前的回答,因为它无效。

This is compiled in Visual Studio 2019. It worked on 1 machine. When we brought solution over to another machine it did not work. Packages: EntityFrameworkCore, .SQL, and .Tools

尝试在失败的机器上重新编译项目之前清理 bin/obj/ 文件夹。

也可以尝试直接从命令行使用 dotnet build 编译它。

1) 先尝试 clean nuget caches 或直接删除 C:\Users\xxx(current user)\.nuget\packages.

下的所有缓存文件

2)Extensions-->Manage Extensions[=39= 下禁用任何已安装的第三方扩展]-->已安装

使用devenv /safemode开始初始对比测试问题是否再次发生。

还有,请不要忘记在安装 nuget 包之前删除每个 binobj 文件夹。

如果你的VS2019版本不是16.8.X,请更新,因为NET5.0是从16.8开始应用的。

除此之外,尝试创建一个新的net core应用程序,然后测试是否再次出现该问题。