7

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

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

4

2 回答 2

2

我认为上面约翰斯的陈述是不正确的。

以我的经验,无论项目是否配置为进行代码分析,项目总是会被重新构建。

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

那么为什么它必须重新构建所有子项目才能运行代码分析呢?

于 2015-01-14T09:53:56.477 回答
1

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

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

  1. 确保您的项目配置为在构建时不运行代码分析
  2. 重建您的解决方案。注意需要多长时间
  3. 构建(不要重新构建)您的解决方案,但这一次,请注意需要多长时间

您会发现您的解决方案实际上是“构建”,但由于项目是最新的,编译器和其他工具不会运行。

因此,代码分析确实首先运行您的解决方案的构建,但它将像上面的 #3 那样构建 - 没有任何变化,因此工具不会运行。只有代码分析工具 (FxCop) 会运行。这花费的时间比您预期的要长,但这是值得的。

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

另一方面,夜间构建运行“调试”配置,因此它运行代码分析。我发现我们不需要每次构建的代码分析结果,但是每天一次是非常必要的。

OBTW,代码分析并不新鲜。如果您查看您链接到的那个 MSDN 页面,您会在“其他版本”下拉列表中找到该页面的 2010 版本。事实上,在它成为产品的一部分之前,代码分析功能作为一个名为“FxCop”的 Visual Studio 插件提供。

于 2013-08-31T03:48:39.180 回答