禁用 StyleCop 规则
Posted
技术标签:
【中文标题】禁用 StyleCop 规则【英文标题】:Disabling StyleCop rules 【发布时间】:2010-10-13 04:49:56 【问题描述】:我正在使用 StyleCop。但是有一些规则我想忽略,例如在班级成员前面使用this.
。
如何关闭 StyleCop 规则。我看过但找不到怎么做。
【问题讨论】:
【参考方案1】:在您的 StyleCop 安装中,有一个 Settings.StyleCop
文件。您可以对其进行编辑以全局关闭规则。将该文件拖到该文件中的 Settings Editor 可执行文件上进行编辑。
您还可以将设置文件的副本放入您的项目中以覆盖全局设置。
如果您正在使用 Visual Studio 集成而不仅仅是 MSBuild 集成,您应该能够通过右键单击您的项目并选择 StyleCop Settings
或类似的东西来访问每个项目的设置编辑器。
【讨论】:
设置文件在哪里?如果您也安装了 resharper,这是否适用? 对于 4.7 版,它是C:\Program Files (x86)\StyleCop 4.7\Settings.StyleCop
。 ReSharper 集成也将在那里查看(以及查看项目中的任何覆盖设置文件)
啊,谢谢 :) ...当我有超过 100 个项目并且我需要为它们全部关闭 1 条规则时,这很烦人。
@Wardy 如果您将所有这些都放在同一个解决方案中,您可以将Settings.StyleCop
文件与.sln
文件放在同一目录中。
@Harrison,您是否尝试过在 Settings.StyleCop 文件上使用 StyleCopSettingsEditor.exe,而不是手动编辑它?它在C:\Program Files (x86)\StyleCop 4.7
【参考方案2】:
Stylecop 可在项目级别进行配置。使用图形界面轻松管理规则,而不是编辑设置文件。(有时在某些版本中称为 Stylecop 设置)
选择下图所示的设置选项后,您应该会看到一个搜索/查找选项。
例如:如果您想删除 // cmets 不允许且 stylecop 允许 //// 的规则,则搜索 stylecop 规则 ID。在这种情况下,它是 SA1005。当您在项目中运行 stylecop 时,您可以在警告部分看到这一点。使用关键字 SA1005 查找,您应该在结果部分看到它。只需取消选中即可。
您可以按如下方式管理规则
【讨论】:
我认为您可以通过这种方式设置一个 csproj,然后将 Settings.StyleCop 文件“移动”到更高的文件夹(例如..\..),它将适用于/下的所有内容那个文件夹。 (从另一个答案重复评论,但有助于防止额外的工作)::: 额外提示。如果您有像 \root\Pres\Pres.csproj、\root\Bal\Bal.csproj、\root\Dal\Dal.csproj 和 \root\Solutions\MySolution.sln 这样的目录结构,您可以右键单击任何项目.......创建规则......(例如\root\Bal\Settings.StyleCop)但是您可以手动将该文件移动到\root\Settings.StyleCop....... ...对于 \root\,也就是您的整个解决方案,它将是“全局的”。【参考方案3】:该特定规则在可读性规则 - 成员访问 - SA1101:PrefixLocalCallsWithThis 下。
如果你把它关掉,它应该不会再对你大喊大叫了……我必须这样做。 Stylecop 一直让我头疼。
【讨论】:
以上是关于禁用 StyleCop 规则的主要内容,如果未能解决你的问题,请参考以下文章
C# - StyleCop - SA1121:UseBuiltInTypeAlias - 可读性规则
如何为 C# 生成自定义 StyleCop 规则 - 条件编译预处理器指令