如何配置Visual Studio类模板使其自动生成file-scoped namespace代码?
操作步骤
第一步:刷新Visual Studio模板缓存
修改完系统内置模板文件后,需要以管理员身份打开VS 2022对应的「开发者命令提示符」,执行如下命令刷新模板缓存,执行完成后重启Visual Studio即可生效:devenv /installvstemplates
如果仍不生效,可以手动删除用户目录下的模板缓存文件夹:%USERPROFILE%\AppData\Roaming\Microsoft\VisualStudio\17.0_xxxx\ItemTemplatesCache下和CSharp类模板相关的目录,再重新执行上述刷新命令。第二步:检查.editorconfig命名空间风格配置
如果项目根目录存在.editorconfig文件,需要确认命名空间声明的风格配置是否正确,将配置修改为文件范围命名空间优先即可:csharp_style_namespace_declarations = file_scoped:warning
如果存在csharp_style_namespace_declarations = block_scoped的配置,需要删除或修改,否则VS会强制按照配置生成块级命名空间代码。第三步:修正类模板内容
你当前的模板缺少internal访问修饰符,且保留了自定义注释,将你路径下的Class.cs模板内容替换为如下内容即可:
namespace $rootnamespace$; internal class $safeitemrootname$ { }
- 额外校验:确认项目配置
要确保你的项目目标框架为.NET 6及以上,C#语言版本为10及以上,低版本环境不支持文件范围命名空间特性,VS会自动将生成的代码降级为块级命名空间格式。
内容的提问来源于stack exchange,提问作者Nigel
相关产品推荐
相关产品推荐

