我想在组织中提高代码质量和样式一致。
为此,我计划将Roslyn Analyzers和StyleCop添加到我的项目中。
为了符合我们公认的编码标准,这些分析仪将需要其他配置。理想情况下,将使用.editorconfig like this进行配置,否则,将使用using rule sets进行配置。
在我的组织中,我们在许多存储库中都有许多项目,许多解决方案。我想尽可能广泛地执行这些标准。我不想将所有分析器软件包和配置都添加到每个项目中,是否有更好,更容易,更容易保持一致的方式来实现这一目标?
我有一个想法,我可以为我的组织制作一个NuGet软件包,其中包含我组织的选定分析器,任何配置以及实际上可能创建的任何自定义分析器。该“捆绑”包可以添加到每个项目中,避免了繁琐且容易出错的重复。这可能吗,甚至是个好主意吗?还有其他人这样做吗?
答案 0 :(得分:5)
您可以使用Directory.Build.props
and Directory.Build.targets
向项目添加属性和目标。
答案 1 :(得分:3)
您可以做一些事情
将NuGet包添加到项目中(这是我们在 工作场所),我们在其顶部添加了自定义设置的StyleCop和FxCop。这是工作。分发非常容易 这种情况。
将Directory.Build.props和Directory.Build.targets添加为@Paulo Morgado 提到的-它们可以在项目级别和解决方案级别进行配置
您也可以使用editorConfig。它被广泛采用。 FxCop和StyleCop都可以与editorConfig一起很好地工作。 EditorConfig也可以打包在Nuget中并分发。 Integration FXCop with 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>
当然,您可以包含自定义的编码规则,也可以包含它们。
答案 2 :(得分:0)