"CS8700: Multiple analyzer config files cannot be in the same directory" 但只有一个 StyleCop 文件

"CS8700: Multiple analyzer config files cannot be in the same directory" but only one StyleCop file

我正在尝试学习在个人项目中使用 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 添加文件之前一切正常。我可以在 Visual Studio 中构建和测试得很好。无论出于何种原因,为 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 是否以某种方式算作另一个分析器文件?如果是这样,我如何让他们玩得很好?

抑制 .editorconfig 中的错误没有任何作用。单独搜索错误时,我也找不到任何有用的文档。

原来问题是试图从项目中引用 .editorconfig 文件。我删除了引用,只是将该文件作为解决方案根目录中的解决方案项保留下来。我在那里的大部分设置都运行良好,但我有一些 StyleCop 严重性设置没有被分析器正确拾取。

为了解决这个问题,我改为对每个项目单独使用 GlobalSuppressions.cs 文件。我可能可以将它们捆绑在一起并像我处理 stylecop.json 文件那样引用它们,但决定限制抑制范围可能更合适。

仅供其他 googler 参考。

我用的是NiccoMlt的结构,遇到的是CS8700。我通过从有问题的项目文件中删除以下内容解决了这个问题。

  <ItemGroup>
    <EditorConfigFiles Include=".editorconfig" />
  </ItemGroup>
  <ItemGroup>
    <None Remove=".editorconfig" />
  </ItemGroup>

我不知道为什么要插入这个,但它解决了我的问题。