将 StyleCop 与 TFS CI 集成的最佳方式
Posted
技术标签:
【中文标题】将 StyleCop 与 TFS CI 集成的最佳方式【英文标题】:Best way to integrate StyleCop with TFS CI 【发布时间】:2010-10-08 03:37:30 【问题描述】:我一直在研究如何为我正在进行的项目启用源分析,并计划使用 StyleCop。我的设置是用于源代码控制的 TFS 服务器,使用 TFS 持续集成。我想为在构建机器上运行的 CI 构建和日常构建启用源分析,而不仅仅是在开发人员的机器上运行的那些。
这是我阅读的 StyleCop 文档中关于该主题的一篇文章: http://blog.newagesolution.net/2008/07/how-to-use-stylecop-and-msbuild-and.html。它基本上为此目的修改了csproj文件。
我还阅读了有关如何将 StyleCop 与构建自动化集成的其他意见,其中建议使用构建任务做同样的事情:
http://blog.newagesolution.net/2008/07/how-to-use-stylecop-and-msbuild-and.html http://freetodev.spaces.live.com/blog/cns!EC3C8F2028D842D5!400.entry.
你有什么意见?你有过类似的项目并做过类似的事情吗?
【问题讨论】:
【参考方案1】:一般使用 StyleCop 的几点:
您不需要在您的(或构建的)机器上安装 StyleCop - 只需将 StyleCop 的二进制文件添加到您的源代码管理中(大约 1.5 MB 的内容)然后简单地将相对引用添加到您的项目文件中,如下所示(我省略了 ):
导入项目="..\..\lib\Microsoft StyleCop\Microsoft.StyleCop.Targets"
我们使用项目文件中的 StyleCopTreatErrorsAsWarnings
设置将所有 StyleCop 警告视为错误。
Settings.StyleCop
) 放在 VS 解决方案所在的根目录中(当然也可以将其置于源代码管理之下)。 StyleCop 知道如何自动找到这个文件(通过查找目录树)。这样您就可以为每个解决方案进行自定义设置。
我们关闭了某些我们认为不太实用的 StyleCop 规则。
这样 StyleCop 将被集成到您的编译步骤中,因此它将成为 CI 构建的一部分。
【讨论】:
我的团队是如何做到这一点的。我们不介意 .csproj 的更改,它有助于我们在此过程中添加其他功能和自定义任务。 现在似乎有一个 nuget 包! :D 供参考,NuGet包为StyleCop.MSBuild【参考方案2】:我们在几个项目中成功使用了以下文章中的方法...
http://blogs.msdn.com/sourceanalysis/pages/source-analysis-msbuild-integration.aspx http://blogs.msdn.com/sourceanalysis/archive/2008/11/11/introducing-stylecop-on-legacy-projects.aspx
基本上你设置了几个环境变量,在所有 .csproj 文件中引用它们,这样你就可以为每个开发人员提供不同的工作目录,在构建机器上安装 StyleCop MSBuild 组件,然后你就可以离开了。无需更改团队构建。
【讨论】:
【参考方案3】:转到 Visual Studio,右键单击解决方案 > 管理 Nuget 包 > 安装 StyleCop.MSBuild。
就是这样=)
【讨论】:
以上是关于将 StyleCop 与 TFS CI 集成的最佳方式的主要内容,如果未能解决你的问题,请参考以下文章
我可以从 TFS CI Build 更改 VS2010 数据库项目的部署脚本的位置吗
卡住不活动的 msbuild.exe 进程、锁定 Stylecop.dll、Nuget AccessViolationException 和 CI 构建相互冲突的奥秘