禁用 StyleCop 规则

81

我正在使用 StyleCop,但是有几个规则我想要忽略,例如在类成员前面使用 this.

如何关闭 StyleCop 的某个规则? 我已经寻找了解决方法,但无法找到。

3个回答

82
在您的StyleCop安装中,有一个Settings.StyleCop文件。您可以编辑此文件以全局关闭规则。将该文件拖放到其中的设置编辑器可执行文件上以进行编辑。
您还可以将设置文件的副本放入您的项目中,以覆盖全局设置。
如果您正在使用Visual Studio集成而不仅仅是MSBuild集成,则应该能够通过右键单击项目并选择StyleCop Settings之类的选项,在每个项目基础上访问设置编辑器。

那个设置文件在哪里?如果你也安装了resharper,这是否适用? - War
4
如果您在同一个解决方案中拥有它们全部,那么您可以将Settings.StyleCop文件放置在与.sln文件相同的目录中。 - J.A.I.L.
@bdukes:我正在使用带有VS 2012 Express的StyleCop 4.7,并想关闭某个规则。您能否详细说明必须在文件中放置什么以禁用规则?我查看了XML,但无法弄清楚。 - Harrison
4
@Harrison,你尝试过使用StyleCopSettingsEditor.exe对Settings.StyleCop文件进行编辑,而不是手动编辑吗?它位于C:\Program Files (x86)\StyleCop 4.7 - bdukes
额外提示。如果您有像\root\Pres\Pres.csproj、\root\Bal\Bal.csproj、\root\Dal\Dal.csproj和\root\Solutions\MySolution.sln这样的目录结构,您可以右键单击任何一个项目......创建规则......(\root\Bal\Settings.StyleCop 例如)但是您可以手动将该文件移动到\root\Settings.StyleCop..........它将成为\root\的“全局”文件,也就是说,适用于整个解决方案。 - granadaCoder
显示剩余4条评论

11

Stylecop可以在项目级别进行配置。使用图形界面轻松管理规则,而不是编辑设置文件。(有时在某些版本中称为Stylecop设置)

选择“设置”选项后,您应该会看到搜索/查找选项,如下图所示。

例如:如果您想删除一个规则,其中不允许//注释,但是////允许Stylecop,则搜索Stylecop规则ID。在这种情况下,它是SA1005。当您在项目中运行stylecop时,您可以在警告部分中看到此ID。使用关键字SA1005查找,您应该可以在结果部分中看到它。只需取消选中即可。

输入图像描述

您可以按以下方式管理规则:

输入图像描述


我认为你可以通过这种方式设置一个csproj,然后将“Settings.StyleCop”文件“移动”到更高的文件夹(例如....),它将应用于该文件夹下的所有内容。 - granadaCoder
如果您有一个目录结构,例如\root\Pres\Pres.csproj、\root\Bal\Bal.csproj、\root\Dal\Dal.csproj和\root\Solutions\MySolution.sln,您可以右键单击任何项目......创建规则......(\root\Bal\Settings.StyleCop,例如)但是您可以手动将该文件移动到\root\Settings.StyleCop..........它将成为\root\的“全局”文件,也就是说,对于整个解决方案。 - granadaCoder

6

那个特定的规则属于可读性规则 - 成员访问 - SA1101: 使用this前缀本地调用。

如果你关闭它,它就不会对你尖叫了...我不得不这样做。Stylecop一直让我头痛。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接