我正在使用 Visual Studio 2022 Community 和 C# 项目。我喜欢我的命名空间与我的文件夹结构相匹配,因此当我将文件从 VS 中的一个文件夹移动到另一个文件夹时,我总是接受提供更改命名空间的弹出消息,或者如果我在 VS 之外进行移动(例如在 File 中) Explorer),我进入 VS 中的文件并打开命名空间的代码修复内容。总是有一个选项“更改命名空间以匹配文件夹结构”,它说与 IDE0130 相关。
这一切都很棒,但我还希望在构建项目时让 IDE0130 自动显示在错误列表中,而不是需要确保我记得自己使用代码修复。不幸的是,我一直无法让它出现在那里。
我添加了一个
.editorconfig
文件,并在其中启用了规则,如 IDE0130 的文档: 中所示
dotnet_style_namespace_match_folder = true
无论如何,这都是默认设置,但我想也可以。我还将其严重性设置为“警告”,认为这会导致它显示在错误列表中,基于同一文档页面的如何将其严重性设置为“无”的示例:
dotnet_diagnostic.IDE0130.severity = warning
它只是永远不会出现在错误列表中。我尝试了很多事情并做了几次实验来试图找出问题所在,包括但可能不限于:
改变
.editorconfig
的位置(例如项目级别、解决方案级别、解决方案级别的祖先)。
将这些行放在
[*.cs]
部分或 [*.{cs,vb}]
部分中...我不关心 VB,但后者是该文档页面上显示的内容,所以我想为什么不尝试一下。
组合或单独使用线条。
使用明显旧的格式
dotnet_style_namespace_match_folder = true:warning
使用严重性“错误”而不是“警告”
使用或不使用项目文件
CompilerVisibleProperty
包括该页面上建议的内容(根据页面,这应该不是必需的,因为我是从VS内编译而不是从命令行编译,但是嘿)
卸载/重新加载项目、关闭/重新打开解决方案、停止/重新启动 VS、构建、重建、清理构建等
以上所有内容都有不同的组合和顺序。
这些都没有帮助。
我已经验证我可以通过这种方式控制另一条消息;例如 IDE0290,“使用主构造函数”:
dotnet_diagnostic.IDE0290.severity = error
当我将该行添加到完全相同的
.editorconfig
文件时,该诊断的实例会在错误列表中自动从默认的“消息”更改为“错误”。
我还注意到,当我打开 IDE0130 实例的代码修复弹出窗口时,我可以选择一个选项来设置其严重性。这样做会自动修改(嗯,覆盖,实际上🙄)
.editorconfig
文件,看起来与我想要指定的严重性时手动放入的内容完全相同。但这仍然没有使 IDE0130 出现。
我在这里遗漏了什么吗?是否可能需要以某种方式设置其他级别的配置?感谢您的帮助。
问题已在 GitHub 上公开:https://github.com/dotnet/sdk/issues/39742。
您可以发表评论并关注问题进展。