阻止代码分析在Visual Studio 2012中重建项目和依赖项

时间:2013-08-30 08:46:06

标签: visual-studio-2012 code-analysis

将我们的解决方案升级到Visual Studio 2012后,我们希望利用新的Code Analysis功能。但是,运行时间太长,因为它在运行之前正在重建项目和依赖项目,即使代码没有更改也不需要重建。

如果不需要重建,有没有办法阻止它重建代码?

2 个答案:

答案 0 :(得分:2)

我认为上面的约翰斯声明是不正确的。

根据我的经验,无论项目是否配置为代码分析,项目总是会重建。

我有100多个项目的解决方案。如果我选择1个项目并仅对该项目运行代码分析,它将重建该项目及其所依赖的所有项目。它不会对其他项目运行代码分析,但它仍然会重建它们。

那为什么必须重建所有子项目来运行代码分析呢?

答案 1 :(得分:1)

如果您刚刚开始使用代码分析,那么您可能会误解症状。你看到: Ë 代码分析需要花费大量时间 2.在代码分析期间,项目构建

您可能会将这两种症状结合起来,并得出代码分析正在强制重建项目的结论。这将是一个错误的假设。试试这个:

  1. 确保您的项目已配置为在构建时运行代码分析
  2. 重建您的解决方案。注意需要多长时间
  3. 构建(不要重建)您的解决方案,但这一次,请注意需要多长时间
  4. 您会发现您的解决方案实际上是“构建”的,但由于项目是最新的,因此编译器和其他工具不会运行。

    因此,代码分析首先会运行您的解决方案的构建,但它将像上面的#3一样构建 - 没有任何改变,因此工具将无法运行。只运行代码分析工具(FxCop)。这比你想象的要长,但值得。

    在我们的环境中,我创建了一个“本地”解决方案和项目配置,从“Debug”复制。此配置与“Debug”大致相同,但不运行代码分析。这是我们的开发人员日常使用的。当代码被检入TFS时,它再次在“本地”配置中启动持续集成(CI)构建,无需代码分析。

    另一方面,每晚构建运行“Debug”配置,因此它运行代码分析。我发现我们不需要对每个构建进行代码分析的结果,但是每天都需要一次这么做。

    OBTW,代码分析并不新鲜。如果您查看链接到的MSDN页面,您将在“其他版本”下拉列表中找到该页面的2010版本。实际上,在代码分析功能成为产品的一部分之前,代码分析功能可用作名为“FxCop”的Visual Studio外接程序。