为什么在 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 包之前删除每个 bin
和 obj
文件夹。
如果你的VS2019版本不是16.8.X
,请更新,因为NET5.0
是从16.8
开始应用的。
除此之外,尝试创建一个新的net core应用程序,然后测试是否再次出现该问题。
我在 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 包之前删除每个 bin
和 obj
文件夹。
如果你的VS2019版本不是16.8.X
,请更新,因为NET5.0
是从16.8
开始应用的。
除此之外,尝试创建一个新的net core应用程序,然后测试是否再次出现该问题。