从 roslyn 分析器中排除文件

Excluding a file from the roslyn analyzers

由于我们有很多生成的代码,一些 roslyn 分析器对这些代码非常感兴趣。有没有办法从分析器中排除一些文件?

目前无法明确说明 "don't run my analyzer on generated code"。你必须手动处理这个。

我相信使用的启发式方法如下。 (我从 Code Cracker 的作者之一 Giovanni Bassi 那里获取了这个列表)如果满足以下任何条件,将自动生成一个文件:

它具有以下属性之一:

  • DebuggerNonUserCodeAttribute
  • 生成代码属性

文件路径包含:

  • *.g.cs
  • *.designer.cs
  • *.AssemblyInfo.cs
  • *.generated.cs
  • *.g.cs
  • *.g.i.cs
  • *.AssemblyAttributes.cs
  • 临时生成文件_*.cs

一条header评论包含:

  • <auto-generated>

Code Cracker 项目有许多检测生成文件的扩展方法。查看 GeneratedCodeAnalysisExtensions