You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Visual Studio 2022编译错误CS1900:设置WarningLevel为5触发报错求助

解决CS1900:警告级别必须在0-4范围内的问题

问题原因

你遇到的CS1900错误,核心原因是:在.NET 5及更高版本的SDK项目中,WarningLevel属性的有效值仍限定为0-4,而你试图设置的5对应的是C# 9及后续版本的分析级别,该级别需要通过AnalysisLevel属性配置,而非传统的WarningLevel。

虽然官方文档提到C# 9有对应级别5的警告,但此处的“级别”指的是分析级别,并非WarningLevel属性的取值范围。

解决方案

方法1:使用AnalysisLevel替代WarningLevel(推荐)

修改你的project.csproj文件,将所有<WarningLevel>5</WarningLevel>替换为<AnalysisLevel>5</AnalysisLevel>,示例如下:

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
  <DebugType>full</DebugType>
  <TreatWarningsAsErrors>False</TreatWarningsAsErrors>
  <NoWarn>;NU1701</NoWarn>
  <AnalysisLevel>5</AnalysisLevel>
  <Optimize>True</Optimize>
  <WarningsAsErrors>;NU1605</WarningsAsErrors>
</PropertyGroup>

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
  <DebugType>full</DebugType>
  <TreatWarningsAsErrors>False</TreatWarningsAsErrors>
  <NoWarn>;NU1701</NoWarn>
  <AnalysisLevel>5</AnalysisLevel>
  <WarningsAsErrors>;NU1605</WarningsAsErrors>
</PropertyGroup>

AnalysisLevel的取值对应关系:

  • 5:对应C# 9的所有警告规则
  • 6:对应C# 10的所有警告规则
  • 7:对应C# 11的所有警告规则
  • latest:自动使用当前SDK支持的最高分析级别

方法2:调整WarningLevel为有效值(不推荐)

若坚持使用WarningLevel,只能将其值设为0-4中的一个,但此方式无法启用C# 9新增的警告规则,因此不推荐。

验证修改

保存csproj文件后,重新加载项目并编译,CS1900错误会消失,同时C# 9的对应警告会正常启用。

内容的提问来源于stack exchange,提问作者Labat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 22:52:31