如何在dotnet命令行中查看C#分析器生成的代码建议提示?
原生dotnet CLI开箱方案(无需修改规则等级)
你要的功能原生已经支持,默认不显示建议是两个原因:一是命令行构建默认不运行IDE级别的代码风格分析,二是默认控制台日志不输出Info级别的诊断信息,按下面操作即可实现:
- 构建时额外传入参数开启代码风格分析:
dotnet build --no-incremental -p:EnforceCodeStyleInBuild=true -p:AnalysisLevel=latest-all -v detailed
参数说明:
-p:EnforceCodeStyleInBuild=true:强制构建阶段执行和Visual Studio一致的代码风格分析,触发IDE开头的规则(比如示例中的IDE0044)-p:AnalysisLevel=latest-all:启用所有最新的官方分析规则-v detailed:将日志输出级别调整为详细,显示Info级别的诊断信息
如果觉得详细日志输出内容太多,可以通过管道过滤包含IDE前缀或者诊断码的行即可,比如:
dotnet build --no-incremental -p:EnforceCodeStyleInBuild=true -p:AnalysisLevel=latest-all -v detailed | grep "IDE[0-9]*"
如果要长期使用,可以把两个属性加到项目的.csproj文件或者根目录的Directory.Build.props文件里,之后运行构建就不用每次带参数:
<PropertyGroup> <EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild> <AnalysisLevel>latest-all</AnalysisLevel> </PropertyGroup>
第三方工具Roslynator方案(输出更干净)
如果原生方案输出冗余内容太多,用Roslynator CLI可以直接输出纯净的诊断结果,操作步骤:
- 安装全局工具:
dotnet tool install -g Roslynator.DotNet.Cli
- 运行分析命令,直接输出所有建议级别的诊断:
roslynator analyze 你的项目路径/项目名.csproj --severity info --no-incremental
输出格式和dotnet build完全兼容,可以直接管道给其他Unix工具做后续处理,不需要修改项目任何配置。
以上两种方案都不需要将EditorConfig里的建议等级修改为警告,可完全保留原有规则分类。
内容的提问来源于stack exchange,提问作者Ties
相关产品推荐
相关产品推荐

