如何在构建期间禁止静态代码分析?

时间:2009-08-11 11:28:05

标签: .net visual-studio code-analysis static-analysis

我们有一个包含15个项目的解决方案,所有项目都启用了代码分析。

解决方案很容易建立60多秒,这在等待时间很长。

如果我禁用代码分析,它会构建10个sesonds。

我希望能够在临时基础上禁用代码分析。但是我仍然希望在签入之前进行代码分析,并且我希望我们的构建服务器(Cruise Control)能够在启用代码分析的情况下继续运行。

我更喜欢在Visual Studio中运行代码分析,因此如果收到错误/警告,我可以直接跳转到源代码。

2 个答案:

答案 0 :(得分:9)

以下是我们的工作方式:

  • 禁用(或者更确切地说:不启用)Debug版本的代码分析(CA)。
  • 创建一个名为Verify的新构建配置,其中启用了代码分析,并将警告视为错误。
  • 按原样保留发布版本。

我们在调试模式下进行常规开发,并且只需要一个非正式规则,您必须在签入之前传递验证版本。

这很容易忘记,但我们在验证构建上运行持续集成(CI),因此如果您签入具有代码分析警告的代码,则会中断构建 - 因此人们很快就会学会手动验证构建之前登记入住:)

您也可以使用不带CA的Release和使用CA的Release,但由于启用CA定义了CODE_ANALYSIS常量,这意味着CA Suppressions将包含在IL中,我不希望在我的Release二进制文件中使用它(YMMV)

答案 1 :(得分:1)

我们的东西遇到了那种问题。我们刚刚拥有四核64位处理器和8位16GB内存。另外,我们试图在任何一点限制项目数量。不是最优雅的解决方案,但它帮助了很多。