.Net Core WebApi 目标框架“net5.0”在构建应用程序时解释为“net50”

Posted

技术标签:

【中文标题】.Net Core WebApi 目标框架“net5.0”在构建应用程序时解释为“net50”【英文标题】:.Net Core WebApi target framework "net5.0" interpreted as "net50" while building app 【发布时间】:2021-05-05 14:45:07 【问题描述】:

我正在 .Net core 5.0 中创建一个新的 Web API。但是,每次我尝试构建它时,都会出现以下错误:

Package HotChocolate.AspNetCore 11.1.0 is not compatible with net50 (.NETFramework,Version=v5.0). Package HotChocolate.AspNetCore 11.1.0 supports: net5.0 (.NETCoreApp,Version=v5.0)

我的应用的目标框架是net5.0

<PropertyGroup>
  <TargetFramework>net5.0</TargetFramework>
</PropertyGroup>


Installed .Net Version: 5.0.202
OS: Manjaro KDE 21.21.0.2
Kernel version: linux 5.10.30-1
IDE: JetBrains Rider 2020.3

由于某种原因,构建工具将目标框架解释为 .NetFramework v5.0 而不是 .NetCore v5.0 .谁能告诉我这里发生了什么?

【问题讨论】:

你在使用dotnet build命令吗? 从HotChocolate.AspNetCore repository,我们可以看到HotChocolate.AspNetCore 11.1.0 支持Asp.net Core 5.0,我也尝试在我的应用程序中安装这个版本的包,效果很好。因此,问题可能与 Nuget 缓存有关,请尝试使用 dotnet nuget locals all --clear 清除缓存。然后,重建应用程序。此外,如果您使用 Visual Studio 2019 创建应用程序,请确保您使用的是 Visual Studio 2019 16.8 或更高版本。 @ZhiLv,不幸的是,清除本地 nuget 缓存没有帮助。这也发生在所有针对.net core.net standard 的库中,而不仅仅是HotChocolate @NishānWickramarathna 是的,我正在使用dotnet build 命令 【参考方案1】:

这可能是由于 Nuget 的旧版本造成的。尝试删除并重新安装Nuget

删除:

pamac remove nuget
pacman -R nuget

安装:

pamac install nuget
pacman -S nuget

【讨论】:

很抱歉,它不起作用。仍然出现同样的错误。【参考方案2】:

第一次尝试让热巧克力为我工作时,我收到了完全相同的错误消息。当我查看项目->属性->目标框架时,我注意到 .net 5.0 不在列表中。

我没有单独下载 dotnet 5.0,而是更新了我的 Visual Studio,在重新启动 Visual Studio 后,有了可用的 5.0 框架,一切都自动修复了。您还可以在包管理器控制台上运行 dotnet restore。

【讨论】:

我实际使用的是 Rider IDE,目标框架在列表中。此外,我从骑手那里构建项目没有问题。给我带来麻烦的是 dotnet CLI。我安装的dotnet版本是5.0.202

以上是关于.Net Core WebApi 目标框架“net5.0”在构建应用程序时解释为“net50”的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET Core WebApi返回结果统一包装实践

asp.net core 搭建WebAPI微服务-----cosnul服务

asp.net core序列化json配置,适用于mvc,webapi

asp.net core序列化json配置,适用于mvc,webapi

asp.net core 系列之webapi集成Dapper的简单操作教程

.NET core 2.1 Web API 是不是支持基于约定的路由?