如何在.editorconfig中仅针对测试项目/类禁用VSTHRD200样式警告
解决方法
- 首先确认文件模式匹配有效性
你写的配置中项目匹配规则[{IntegrationTest.*,Test.*}.csproj]仅对名称以IntegrationTest.或Test.开头的.csproj生效,文件匹配规则[Test*.cs]仅对名称以Test开头的.cs文件生效。如果你的测试项目/文件命名不符合该规则,配置不会生效,可以先临时将规则放到全局.editorconfig的最顶部验证是否能消除波浪线,确认规则本身有效后再调整匹配模式。 - 确认配置无层级冲突
.editorconfig遵循就近优先级原则,如果你的测试项目文件夹内存在单独的.editorconfig文件,其配置会覆盖根目录的.editorconfig规则,请检查测试项目路径下是否存在冲突的配置项。 - 修正后的标准配置(已经符合仅禁用VSTHRD200的要求,不需要调整category-Style)
# 测试项目匹配 [{IntegrationTest.*,Test.*}.csproj] dotnet_diagnostics.VSTHRD200.severity = none dotnet_analyzer_diagnostic.VSTHRD200.severity = none # 测试类文件匹配 [Test*.cs] dotnet_diagnostics.VSTHRD200.severity = none dotnet_analyzer_diagnostic.VSTHRD200.severity = none
注:不需要配置dotnet_analyzer_diagnostic.category-Style.severity = none,该配置会禁用所有样式类规则,不符合需求
- 清除VS编辑器缓存
VS2019的编辑器诊断缓存经常会导致配置不立即生效,操作步骤:
- 关闭所有打开的VS窗口
- 打开资源管理器,进入路径
%LocalAppData%\Microsoft\VisualStudio\ - 删除所有名称以
16.0_开头的文件夹下的ComponentModelCache目录 - 重新打开VS和解决方案,执行一次重新生成
- 快速验证方法
打开任意触发VSTHRD200警告的测试方法,将光标移动到波浪线上,按Ctrl+.调出快速操作菜单,选择「禁止或抑制警告」->「在EditorConfig中禁止」,VS会自动生成对应规则到.editorconfig,直接使用自动生成的配置即可保证匹配逻辑和规则写法正确。
内容的提问来源于stack exchange,提问作者ProdigioM
相关产品推荐
相关产品推荐

