VS2019搭配C# 9、.Net 5环境下原有编译器警告消失如何恢复?
.NET 5 + C# 9 + VS 2019 代码风格警告开启方案
1. 调整项目文件配置
.NET 5 已内置官方代码分析器,无需额外安装旧版FxCop、StyleCop相关Nuget包,先在项目.csproj文件的PropertyGroup节点中添加如下配置:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>net5.0</TargetFramework> <LangVersion>9.0</LangVersion> <Nullable>enable</Nullable> <!-- 开启.NET内置分析器 --> <EnableNETAnalyzers>true</EnableNETAnalyzers> <!-- 构建时强制校验代码风格 --> <EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild> <!-- 匹配.NET 5的规则集版本 --> <AnalysisLevel>5</AnalysisLevel> <!-- 开启XML文档注释校验(触发函数缺失文档头等警告) --> <GenerateDocumentationFile>true</GenerateDocumentationFile> <!-- 构建时运行分析器 --> <RunAnalyzersDuringBuild>true</RunAnalyzersDuringBuild> <!-- 实时编码时运行分析器 --> <RunAnalyzersDuringLiveAnalysis>true</RunAnalyzersDuringLiveAnalysis> </PropertyGroup> </Project>
如果此前项目安装过StyleCop.Analyzers、Microsoft.CodeAnalysis.FxCopAnalyzers这类旧版分析器Nuget包,需要先卸载,避免规则冲突导致配置不生效。
2. 新增.editorconfig规则配置
代码风格类规则默认仅为IDE内部提示级别,不会输出为构建警告,需要在解决方案根目录(全局生效)或项目根目录(仅当前项目生效)新增.editorconfig文件,指定规则的严重级别为warning,以下是最小配置示例:
root = true [*.cs] # 格式规则:代码格式不匹配时抛出警告(包含括号换行、空行等格式要求) dotnet_diagnostic.IDE0055.severity = warning # 缺失XML文档注释警告 dotnet_diagnostic.CS1591.severity = warning # 移除未使用的using引用警告 dotnet_diagnostic.IDE0005.severity = warning # 示例:强制右括号后跟随空行 csharp_new_line_after_close_brace = require:warning # 可根据自身需求添加更多代码风格规则,指定severity为warning即可触发警告
3. 验证VS环境配置
打开VS 2019的工具-选项-文本编辑器-C#-高级面板,确认以下选项已勾选:
- 启用 .NET 分析器
- 生成时运行分析器
- 实时分析期间运行分析器
4. 生效验证
清理解决方案后执行全量构建,对应代码风格违规会以警告形式出现在错误列表中。
内容的提问来源于stack exchange,提问作者Bob Vesterman
相关产品推荐
相关产品推荐

