C# &引用;CS8700:多个analyzer配置文件不能位于同一目录中;但是只有一个StyleCop文件
我正在努力学习在个人项目中使用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
- 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
。啊,是的,那也行,谢谢!