【问题标题】:How to suppress stylecop on a namespace level?如何在命名空间级别抑制 stylecop?
【发布时间】:2013-08-16 22:27:52
【问题描述】:

我尝试使用以下指令告诉 StyleCop 避免使用整个命名空间:

[module: System.Diagnostics.CodeAnalysis.SuppressMessage("StyleCop.CSharp.DocumentationRules", "*", Justification = "Reviewed. Suppression is OK here.")]

但是,这似乎不起作用。我有一个生成帮助文档的第三方插件,我不想在他们的代码上运行 StyleCop。

甚至可以在命名空间级别进行抑制吗?

【问题讨论】:

    标签: c# stylecop


    【解决方案1】:

    根据http://blogs.msdn.com/b/sourceanalysis/archive/2009/08/10/rule-suppressions.aspx,您不能使用全局抑制。您必须将每个抑制附加到代码元素。

    StyleCop 只检查源代码而不检查 IL 代码。如果 StyleCop 检查第三方插件的代码,那么可能您已将第三方插件的项目附加到您的解决方案中,而不是对其编译程序集的引用。

    您有三个选择:

    • 在您的项目中添加对第三方库的已编译程序集的引用。这样就不会根据第三方库检查 StyleCop 规则。
    • 如果将第三方插件作为项目添加到您的解决方案中,则抑制每个代码元素的规则。这意味着您将更改第三方库的源代码。
    • 如果第三方插件作为项目添加到您的解决方案中,则禁用所有 StyleCop 规则。右键单击项目节点并选择StyleCop Settings

    【讨论】: