如何摆脱StyleCop

gbj*_*anb 12 c# stylecop csproj

我们团队中的某个人安装了StyleCop,从那时起他加载并承诺源代码控制的所有项目都拒绝加载,除非安装了stylecop.

我知道我可以手动编辑.csproj文件来摆脱它,但是有一种简单的方法可以从项目文件中自动删除这些stylecop部件,以便可以在非Stylecop感染的Visual Studio机器上加载和构建它们吗?

Chr*_*cht 20

为什么删除它?
在我看来,使用StyleCop是一件好事.
您唯一的问题似乎是您的团队成员没有正确设置StyleCop.

根据您的描述,我想他想要使用MSBuild集成设置StyleCop:http: //blogs.msdn.com/b/sourceanalysis/archive/2008/05/24/source-analysis-msbuild-integration.aspx

他显然只是遗漏了最后一段"Team Development":将StyleCop文件复制到你的项目中并将它们检查到源代码控制中,因此你不需要在每台开发者机器上安装StyleCop. (有关更详细的说明,请参阅我的链接)

如果你这样做,StyleCop应该适用于每台机器,无论它是否安装.

我们也以这种方式使用StyleCop,我认为这是使用它的最简单方法.
我只需要在每个.csproj文件中插入两行,并将一些文件检入源代码控制一次......而StyleCop只在每次编译时都能正常工作(无论是在开发人员机器上还是构建服务器上) .

  • Stylecop不是一件好事.我们总是无法控制我们使用的代码 - 特别是我们拥有的"核心"代码是由另一个国家/地区的不同团队编写的.我们可以说默认的stylecop选项只能创建几千个违规行为.并且它们没有一致的系统,因此我们要么接受这些警告,要么在我们的代码中删除它们,然后回到过去的老式方法,使我们的代码看起来不错,没有任何"帮助". (16认同)
  • 您可以在StyleCop中禁用某些规则.并且您只能为某些项目启用StyleCop.因此,如果来自其他团队的代码违反了太多规则,您可以为其代码禁用Stylecop并为您的代码启用它. (10认同)
  • StyleCop鼓励人们记录不需要记录的东西(例如具有明显名称的属性,如"Surname"),并且不会记录复杂的代码.因此,它会导致开发人员忽略重要的文档,同时阻碍他们编写非常基本的代码的工作流程.代码也变得臃肿,不必要的格式化,这意味着可读性. (9认同)
  • 关于"如果你没有安装stylecop就会出错":如果你把StyleCop文件放在你的项目中并将它们检查到源代码控制中,它们就不会出现这种情况.看一下我的答案中的链接,它有详细的描述(在最后一段"团队开发"中). (3认同)

Ste*_*hen 19

Stylecop隐藏真实警告.它是一种虚荣运动和它的邪恶.

不要使用它.

我发现,stylecop产生许多琐碎的警告,淹没了真正的警告.一定要使用这些工具,但不要强迫它们打开.没有stylecop警告是一个毫无意义的指标.

  • 每个工具都必须根据其用途使用.Stylecop并没有说你的代码是好的,它说它的格式与规则集是一致的.与任何VCS(svn/git)中的自动合并相同,在合并之后永远不会说你的代码是否存在:它只是说,根据合并规则将所有更改合并在一起.但是,您有责任确保代码一致(例如,每次编译和单元测试都通过). (21认同)
  • 它隐藏了真正的警告,因为一些开发人员看起来并说'看起来没有样式警察问题!' 尽管写了可怕的,不可维护的意大利面条代码. (6认同)
  • StyleCop是一个很棒的工具.禁用您不同意的警告. (4认同)
  • 它是如何隐藏真实警告的? (3认同)

Mik*_*ver 15

我通过将以下GlobalSettings配置添加到settings.stylecop解决方案根目录中的文件来禁用StyleCop .

<StyleCopSettings Version="4.3">
  <GlobalSettings>
    <BooleanProperty Name="RulesEnabledByDefault">False</BooleanProperty>
  </GlobalSettings>
  ...
</StyleCopSettings>
Run Code Online (Sandbox Code Playgroud)

  • @MarshallConover是的,刚看到它,3年后询问和8年后需要解决方案:-) (2认同)

tom*_*ern 12

测试驱动开发

Red -> Green -> Refactor
Run Code Online (Sandbox Code Playgroud)

测试驱动开发(与STYLECOP)

Red -> Red -> WTF? -> Red -> Red -> ...
Run Code Online (Sandbox Code Playgroud)

另外,从这里:

Bob:使用模式匹配,软件识别丑陋的代码
Charlie: - 并修复它!
鲍勃:没有.它会打印一条关于每次违规的消息.
查理:然后用户右键单击以解决所有问题?
鲍勃:没有.消息骂他们"逗号周围的无效间距".
查理:然后解释用户如何修复它?
鲍勃:不,这些信息在一份单独的文件中.
查理:在谷歌上?
鲍勃:不.


这就是为什么不使用Stylecop.