Visual Studio 2017中.editorconfig无法覆盖本地代码风格偏好的求助
针对你在VS2017(15.9.4)中遇到的.editorconfig规则失效、被本地代码风格偏好覆盖的问题,结合你已尝试的排查步骤,补充以下针对性解决方案:
确认EditorConfig扩展安装
VS2017对.editorconfig的原生支持有限,需安装官方的「EditorConfig Language Service」扩展:打开VS2017,进入「工具→扩展和更新→联机」,搜索并安装该扩展,重启VS后再验证规则。强制VS遵循.editorconfig配置
进入「工具→选项→文本编辑器→C#→代码风格→常规」,勾选「在可用时使用.editorconfig配置」,同时将下方「this.前缀」相关的本地设置改为「不设置」,避免本地规则覆盖.editorconfig。排查
/useenv启动参数的干扰devenv /useenv会加载系统环境变量配置,可能导致VS缓存异常:- 关闭所有VS实例,删除
%LOCALAPPDATA%\Microsoft\VisualStudio\15.0_<你的实例ID>\ComponentModelCache文件夹,清除配置缓存。 - 尝试不使用
/useenv启动VS,验证.editorconfig是否生效,排除环境变量的影响。
- 关闭所有VS实例,删除
规范.editorconfig规则格式
确保针对this.前缀的规则格式正确且指定了文件类型,示例如下:root = true [*.cs] dotnet_style_qualification_for_field = true:suggestion dotnet_style_qualification_for_property = true:suggestion dotnet_style_qualification_for_method = true:suggestion dotnet_style_qualification_for_event = true:suggestion注意:VS2017对规则严重程度的支持有限,优先使用
suggestion或warning级别。调整项目文件配置
打开项目的.csproj文件,在<PropertyGroup>节点中添加以下配置,强制项目启用.editorconfig支持:<EditorConfigFiles>true</EditorConfigFiles> <EnableEditorConfigSupport>true</EnableEditorConfigSupport>同时检查是否存在
<CodeAnalysisRuleSet>等覆盖代码风格的配置,如有则移除。重置VS用户设置
如果本地设置缓存已损坏,运行命令devenv /resetuserdata重置VS用户数据,重启后重新配置基础设置,再加载解决方案验证。
内容的提问来源于stack exchange,提问作者Kratos

