使用 FxCop 仅分析最新更改

Posted

技术标签:

【中文标题】使用 FxCop 仅分析最新更改【英文标题】:Using FxCop to analyse only the latest changes 【发布时间】:2010-03-22 08:41:05 【问题描述】:

我试图让 FxCop 以一种方式工作,它只分析它分析的 exe/dll 中的增量变化,而不是整个事情,因为它已经分析了那部分......达到这个?? ...提前谢谢...

问候,

ASV...

【问题讨论】:

【参考方案1】:

我认为实现这一点太麻烦了。我的建议是选择您可以接受的 fx cop 规则,并从您的代码中获取所有错误/警告。这样,如果另一个团队成员更改了某些内容,您就会发现它,除非他们编写的代码通过了。在这种情况下没有问题。

除非您正在处理一些需要很长时间才能通过 fxcop 检查的大型项目,否则我认为这应该没问题,没有理由只检查增量更改。

如果您的项目变得如此庞大以至于需要很长时间来分析,请考虑重构。在 Visual Studio 上下文中,无论项目中有文件夹,请考虑将它们放入新项目中。这将有助于分离您的代码,并可以分析整个解决方案的各个部分,而不是整个解决方案及其所有项目,其中大部分不会有任何变化。

与进行真正定制的测试设置来弥补困难场景相比,重构通常更快,学习曲线更少。

【讨论】:

是的...大型项目是我不能忽视的事情,我们正在解决流程...所以需要在所有场景中保持一致、明智的解决方案...任何想法?? ...我们可以以任何方式使用 VS 可扩展性吗?? 我想到了一些事情,比如在 Visual Studio 项目上启用增量构建,然后在构建后过程中运行的 FxCop 会处理其余的事情......这是正确的想法...... . 增量构建是否会使 FxCop 也寻找 exe/dll 中的增量更改.. 虽然我自己怀疑这种情况会发生...... 您应该考虑制作在解决方案的不同部分运行的较小的 fxcop 项目,而不是一个大的分析。一些项目将面临比其他项目更多的变化。如果您将 fx cop 作为持续集成构建的一部分运行,请考虑使用不同的构建,而较重的 fxcop 项目运行频率较低。 我不认为增量构建会有所帮助。 FxCop 仍将分析整个程序集。 谢谢你,Mark.. 但是我们怎么能有多个 FxCop projs 用于同一个 exe/dll? ..我正在使用 v1.36 并且找不到一种方法来做这样的事情..您能否详细说明为同一个 exe/dll 创建多个 FxCop 项目的概念??【参考方案2】:

这与这个问题类似。

Diff fxcop results

这是可能的,但结果不会 100% 准确。简而言之,您对装配体运行分析并生成报告。组件更改后,再次运行分析,将 FXCop 项目设置为仅报告新错误并将旧报告作为基线导入。最好使用 fxcopcmd.exe 而不是 UI。

结果不会 100% 准确的原因是,将旧报告与新代码相匹配并非易事。换行、重构代码、修复违规、引入新的违规等。因此,您可能会在更改的程序集中再次报告一些违规,即使它们之前已报告过。但总的来说,fxcop 在创建差异报告方面做得相当不错。

【讨论】:

以上是关于使用 FxCop 仅分析最新更改的主要内容,如果未能解决你的问题,请参考以下文章

代码分析 (FXCop) 命令行差异

Visual Studio 代码分析 (fxCop) 仅在第一次构建后运行

使用 PhotoEditor SDK 重新编辑具有相同名称的图像仅返回对原始图像的最新更改

VS2008中的代码分析(FxCop)功能在哪里?

单元测试自定义 FxCop 规则

FxCop Nant 任务错误:创建文件集时出错