Jod*_*ell 13 c# stylecop roslyn .net-core
我想在组织中强制执行代码质量和一致的样式。
为此,我计划将Roslyn Analyzers和StyleCop添加到我的项目中。
为了满足我们公认的编码标准,这些分析仪将需要其他配置。理想情况下,将使用.editorconfig进行此类配置,否则,将使用规则集进行配置。
在我的组织中,我们在许多存储库中都有许多项目,许多解决方案。我想尽可能广泛地执行这些标准。我不想将所有分析器软件包和配置都添加到每个项目中,是否有更好,更容易,更容易保持一致的方式来实现这一目标?
我有一个想法,我可以为我的组织制作一个NuGet软件包,其中包含我组织的选定分析器,任何配置以及实际上可能创建的任何自定义分析器。该“捆绑”包可以添加到每个项目中,避免了繁琐且容易出错的重复。这可能吗,甚至是个好主意吗?有人做过吗?
您可以做一些事情
将 NuGet 包添加到项目中(这是我们在工作场所所做的),我们添加了 StyleCop 和 FxCop,并在其之上添加了我们的自定义设置。这是工作。在这种情况下,分发非常容易。
添加 Directory.Build.props 和 Directory.Build.targets 作为 @Paulo Morgado 提到的 - 它们可以在项目级别和解决方案级别进行配置
您也可以使用 editorConfig。它正在被广泛采用。FxCop 和 StyleCop 都与 editorConfig 配合得很好。EditorConfig也可以打包在Nuget中并分发。将 FXCop 与 EditorConfig 集成。
例如,要创建 nuget 包,请使用 .nuspec 文件创建 .netstandard 库,最基本的示例是
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<dependencies>
<dependency id="StyleCop.Analyzers" version=""/>
<dependency id="Microsoft.CodeAnalysis.FxCopAnalyzers" version=""/>
</dependencies>
</metadata>
</package>
Run Code Online (Sandbox Code Playgroud)
当然,您也可以包含自定义的编码规则并包含它们。