为何无法用FxCopAnalyzers分析ASP.NET WebForms项目且无法设置默认规则集?
解决Visual Studio 2017 + FxCopAnalyzers在WebForms项目中的两个问题
针对你在Visual Studio 2017 15.5.5搭配FxStyleCopAnalyzers 2.6.0.0时遇到的两个问题,我整理了实际可行的解决办法:
一、无法对ASP.NET WebForms项目进行代码分析
WebForms项目因为自身结构的特殊性,默认可能无法正常触发FxCopAnalyzers的分析,你可以按以下步骤排查:
- 确认NuGet包安装完整性:先卸载FxStyleCopAnalyzers,清除NuGet本地缓存(路径一般是
%userprofile%\.nuget\packages),然后重新安装该版本。同时检查是否安装了对应的Microsoft.CodeAnalysis依赖包——2.6.0版本的FxStyleCopAnalyzers需要匹配VS2017 15.5对应的Roslyn版本,缺依赖会导致分析失效。 - 启用项目的代码分析开关:右键项目→「属性」→「代码分析」,确保勾选「生成时启用代码分析」。WebForms项目默认可能未开启这个选项,导致分析不执行。
- 手动检查项目文件配置:右键项目→「卸载项目」,编辑
.csproj文件,确认以下配置存在:
保存后重新加载项目,再尝试生成分析。<PropertyGroup> <!-- 启用代码分析 --> <RunCodeAnalysis>true</RunCodeAnalysis> </PropertyGroup> <ItemGroup> <!-- 确保Analyzer被正确引入 --> <Analyzer Include="..\packages\FxStyleCopAnalyzers.2.6.0.0\analyzers\dotnet\cs\StyleCop.Analyzers.dll" /> </ItemGroup> - 先排查纯CS文件的分析:暂时排除
.aspx/.ascx文件的干扰,先单独对项目中的.cs类库文件进行分析,如果能正常运行,再针对WebForms页面的代码分析做进一步调试。
二、无法设置默认规则集
如果在UI界面设置规则集不生效,可以尝试以下方法:
- 通过项目属性界面设置:右键项目→「属性」→「代码分析」,在「规则集」下拉框中选择目标规则集(如果没有则点击「浏览」选择本地
.ruleset文件)。部分版本中可以勾选「将此规则集设置为项目的默认值」,确保后续新建文件也应用该规则。 - 手动修改项目文件强制指定:如果UI设置无效,直接编辑
.csproj文件,在<PropertyGroup>节点中添加规则集路径:
路径可以是相对项目的路径,也可以是绝对路径,确保文件存在。<CodeAnalysisRuleSet>YourCustomRuleSet.ruleset</CodeAnalysisRuleSet> - 使用Analyzer自带的规则集:FxStyleCopAnalyzers安装后,在NuGet包的
rulesets目录下会自带适配的规则集(比如StyleCopRules.ruleset),直接选择这个规则集兼容性更好,避免版本不匹配的问题。 - 重置VS设置排除干扰:如果是Visual Studio本身的配置异常导致规则集无法保存,可以通过「工具」→「导入和导出设置」→「重置所有设置」,重置后重新配置规则集。
内容的提问来源于stack exchange,提问作者Andrey Korneyev
相关产品推荐
相关产品推荐

