C# &引用;CS8700:多个analyzer配置文件不能位于同一目录中;但是只有一个StyleCop文件

C# &引用;CS8700:多个analyzer配置文件不能位于同一目录中;但是只有一个StyleCop文件,c#,build,configuration,stylecop,analyzer,C#,Build,Configuration,Stylecop,Analyzer,我正在努力学习在个人项目中使用StyleCop。这不是一个很大的解决方案,解决方案结构如下: - MySolution (2 of 2 projects) - Solution Items - .editorconfig - .gitignore - CODEOWNERS - my-pipeline-workflow.yml - README.md - stylecop.json - MyMainProject

我正在努力学习在个人项目中使用StyleCop。这不是一个很大的解决方案,解决方案结构如下:

- MySolution (2 of 2 projects)
   - Solution Items
      - .editorconfig
      - .gitignore
      - CODEOWNERS
      - my-pipeline-workflow.yml
      - README.md
      - stylecop.json
   - MyMainProject
      - Dependencies
      - .editorconfig (pointer Solution Items copy)
      - OneOfManyCsFiles.cs
      - stylecop.json (pointer Solution Items copy)
   - MyTestProject
      - Dependencies
      - .editorconfig (pointer Solution Items copy)
      - OneOfManyTestCsFiles.cs
      - stylecop.json (pointer Solution Items copy)
以下是文件夹本身的结构:

- RepoFolder
   - .github
      - workflows
         - my-pipeline-workflow.yml
   - src
      - MyMainProject.csproj
      - OneOfManyCsFiles.cs
   - test
      - MyTestProject.csproj
      - OneOfManyTestCsFiles.cs
   - .editorconfig
   - .gitignore
   - CODEOWNERS
   - MySolution.sln
   - README.md
   - stylecop.json
在为StyleCop添加文件之前,一切都正常。我可以在VisualStudio中很好地构建和测试。无论出于何种原因,添加StyleCop文件(可能还有
.editorconfig
文件)似乎在生成时导致了此错误:

CSC: error CS8700: Multiple analyzer config files cannot be in the same directory ('/home/runner/work/MySolution/MySolution').
[/home/runner/work/MySolution/MySolution/src/MyMainProject.csproj]
据我所知,StyleCop文件是惟一的分析器文件,它在多个地方被引用。
.editorconfig
是否以某种方式算作另一个analyzer文件?如果是这样的话,我如何让他们玩得好呢


抑制
.editorconfig
中的错误不会产生任何效果。在单独搜索错误时,我也找不到任何有用的文档。

发现问题是试图引用项目中的
.editorconfig
文件。我删除了引用,并将该文件作为解决方案项保留在解决方案的根目录中。从那以后,我的大多数设置都工作得很好,但是我有一些StyleCop严重性设置,没有为分析器正确地选择


为了解决这个问题,我改为分别为每个项目使用
GlobalSuppressions.cs
文件。我可能已经将它们捆绑在一起并引用它们,就像我使用
stylecop.json
文件一样,但我认为限制抑制范围可能更合适。

实际上,您应该能够添加嵌套在子文件夹中的特定于项目的
.editorconfig
文件,只需不指定
root=true
option()@NiccoMlt-true,尽管我的问题是在两个不同的项目中使用了对同一文件的引用。目标是不在不需要的地方复制文件。是的,我理解这个问题,并且您的解决方案工作正常。我指出,为了提高一致性,您可以使用单一类型的配置文件(EditorConfig),方法是使用项目中未引用的根
.EditorConfig
(与您一样)和每个项目中需要调整设置的嵌套
.EditorConfig
文件,避免使用
GlobalSuppressions.cs
。啊,是的,那也行,谢谢!