如何使用 Visual Studio 2019 为解决方案中的多个项目指定自定义代码分析规则集?

Chr*_*ris 7 solution visual-studio static-code-analysis roslyn roslyn-code-analysis

我有一个自定义代码分析规则集,我想将其应用于解决方案中多个项目的所有配置,但不知道如何实现。

明确地说,我正在寻找一种方法(如果有的话)在一个步骤中执行此操作,而不是从 IDE 编辑每个项目的属性。

到目前为止,我找到了这个指导:https : //docs.microsoft.com/en-us/visualstudio/code-quality/how-to-configure-code-analysis-for-a-managed-code-project?view=vs -2019#specify-rule-sets-for-multiple-projects-in-a-solution

但这似乎并不正确。在 Visual Studio 2019 中,如果我转到“分析”>“配置代码分析”>“解决方案”,我会看到一个带有消息的空白属性页:

注意:此属性页已被弃用,将在未来的产品版本中删除。

还有另一种方法可以做到这一点吗?我有很多项目:(

谢谢。

Pau*_*ado 5

为项目指定规则集,请使用CodeAnalysisRuleSetMSBuild 属性。

为此,您可以通过多种方式自定义构建


Chr*_*ris 5

我没有回答是否有办法在 Visual Studio 中执行此操作,因此我不得不直接以批处理方式更改 .csproj 文件。

我发现约翰罗宾斯的这个脚本非常好: https://www.wintellect.com/batch-updating-changing-visual-studio-projects-with-powershell/

安装后,如果有人感兴趣的话,我的用法是这样的:

dir -recurse *.csproj | Set-ProjectProperties -OverrideDefaultProperties -CustomConfigurationProperties @{ "CodeAnalysisRuleSet" = ".\SystemStandard.ruleset" }

dir -recurse *.csproj | Set-ProjectProperties -OverrideDefaultProperties -CustomConfigurationProperties @{ "RunCodeAnalysis" = "false" }

dir -recurse *.csproj | Set-ProjectProperties -OverrideDefaultProperties -CustomConfigurationProperties @{ "TreatWarningsAsErrors" = "true" } 
Run Code Online (Sandbox Code Playgroud)