当前位置: 首页 > news >正文

[转] C#代码检查工具:stylecop

http://minmin86121.blog.163.com/blog/static/49681157201182044847408/

微软的StyleCop作为一款代码分析插件,集成到Visual Studio 2008和Visual Studio 2010之中,可以帮助开发人员迅速地理清编程规范问题。对确保软件质量,确保软件开发效率而言,意义非凡。与同样出自微软的另一款代码分析工具fxcop通过分析程序集来检查各类编程规范错误不同的是,StyleCop是针对C#源代码的分析工具。有点类似java的checkstyle。

StyleCop可以检查代码中的各类静态编程规范错误,从代码注释,代码布局,可维护性,命名规范,可读性等各方面对代码规范性进行检查。重要的是,其规则可以自定义,可以屏蔽掉不适用于特定项目的规则,甚至可以自定义开发适用于各自项目的规则。

安装StyleCop以后,在解决方案视图中右键点击项目,在弹出菜单选择“Run StyleCop”即可运行代码检查,结果默认将被输出至“Warnings”清单。也可以修改通过配置项,将其输出至“Errors”清单。开发人员可以方便地定位并修改编程规范问题。

StyleCop可以与MSBuild进行集成。这样当开发人员点击“生成”项目时,将自动运行StyleCop检查,无须选择“Run StyleCop”菜单。而且,通过使用SVNStyleCop插件,可以方便地在SVN库上进行代码check in检查,对不符合代码规范的check in动作进行回滚。

以下步骤介绍如何集成StyleCop至MSBuild,即让开发人员直接点击“生成”项目就可以进行代码检查:

1,安装MSBuild集成文件。默认情况下,安装StyleCop不会选中安装“MSBuild files”,因此在安装时,进行到如下步骤时,确保选中“MSBuild files”进行安装。
Installing MSBuild Image

2,在项目文件中增加Import配置节。要使得某个项目可以集成到MSBuild,需要使用诸如NotePad之类的编辑器打开项目文件(.csproj),添加如下红色字体部分,并保存项目文件:
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

...Contents Removed...

<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />

<Import Project="$(ProgramFiles)\MSBuild\Microsoft\StyleCop\v4.3\Microsoft.StyleCop.targets" />

...Contents Removed...

</Project>

重新加载项目之后,该项目即可集成到MSBuild当中了。

StyleCop还可以很方便地集成到团队开发和构建环境,如CI中。

StyleCop已经开源:http://stylecop.codeplex.com/

SVNStyleCop请参见:http://svnstylecop.codeplex.com/

转载于:https://www.cnblogs.com/RobotTech/archive/2011/12/13/2285590.html

相关文章:

  • Android的一些开源项目集锦 以备以后研究
  • session.createSQLQuery()方法去执行删除无效
  • Apache 限速模块安装笔记
  • WinCE平台下BMP转JPG代码备份1
  • 白色的风信子
  • 2011经典语句
  • WebSphere应用服务器证书过期问题解决
  • yum安装MySQL并设置密码
  • 电线电缆规格型号
  • SQL Server大负载的生产环境下的性能优化:初识元数据优化
  • iphone-common-codes-ccteam源代码 CCMail.h
  • 《如何成为卓越的大学教师》的阅读笔记及感想 (一)
  • 《TCP/IP路由技术》卷一 中文版错误点纠正
  • SecureCRT下传输文件
  • 关于图片的验证码
  • 【css3】浏览器内核及其兼容性
  • Angular2开发踩坑系列-生产环境编译
  • AngularJS指令开发(1)——参数详解
  • Druid 在有赞的实践
  • Fastjson的基本使用方法大全
  • JavaScript设计模式与开发实践系列之策略模式
  • jdbc就是这么简单
  • Promise初体验
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • SwizzleMethod 黑魔法
  • vue-loader 源码解析系列之 selector
  • Vue全家桶实现一个Web App
  • 编写符合Python风格的对象
  • 给第三方使用接口的 URL 签名实现
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 工作手记之html2canvas使用概述
  • 如何胜任知名企业的商业数据分析师?
  • 写代码的正确姿势
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • 最近的计划
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (1)(1.13) SiK无线电高级配置(五)
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (HAL库版)freeRTOS移植STMF103
  • (zt)最盛行的警世狂言(爆笑)
  • (二十四)Flask之flask-session组件
  • (附源码)ssm考生评分系统 毕业设计 071114
  • (黑马C++)L06 重载与继承
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (实战篇)如何缓存数据
  • (收藏)Git和Repo扫盲——如何取得Android源代码
  • ./configure,make,make install的作用(转)
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .NET 材料检测系统崩溃分析
  • .net6Api后台+uniapp导出Excel
  • .Net的DataSet直接与SQL2005交互