防止Visual Studio 2012中的代码分析重新构建项目和依赖项。

8

将我们的解决方案升级到Visual Studio 2012后,我们希望利用新的代码分析功能。但是,它运行起来太慢了,因为在运行之前,它会重新构建项目和相关项目,即使代码没有更改也不需要重建。

有没有办法在不需要重建的情况下停止重新构建代码呢?


很确定重建是静态代码分析运行。 - ta.speot.is
2个回答

2
我认为约翰上述的陈述是不正确的。根据我的经验,无论是否配置了代码分析,项目都会被重建。我有一个包含100多个项目的解决方案。如果我选择一个项目并仅对该项目运行代码分析,它将重建该项目及其所有依赖的项目。它不会在其他项目上运行代码分析,但仍然会重建它们。那么为什么必须重建所有子项目才能运行代码分析呢?

1
如果您刚开始使用代码分析,可能会误解症状。您可能会看到:
1. 代码分析需要大量时间 2. 在进行代码分析时,项目会构建
您可能会将这两个症状结合起来,得出代码分析正在强制重新构建项目的结论。这是一个错误的假设。请尝试以下操作: 1. 确保您的项目配置为在构建时不运行代码分析 2. 重新构建您的解决方案。注意需要多长时间 3. 构建(不要重新构建)您的解决方案,但这次请注意需要多长时间
您会发现您的解决方案实际上是“构建”的,但由于项目已经是最新的,编译器和其他工具不会运行。
所以,确实需要首先运行一个解决方案的构建,然后才执行代码分析工具(FxCop),但这将比您预期的时间更长,但它一定是值得的。
在我们的环境中,我创建了一个名为“本地”的解决方案和项目配置,从“调试”中复制而来。这个配置大部分与“调试”相同,但不运行代码分析。这是我们开发人员日常使用的配置。当代码被检入TFS时,它会在“本地”配置下启动持续集成(CI)构建,同样不运行代码分析。
另一方面,夜间构建会运行“调试”配置,因此它会运行代码分析。我发现我们不需要在每次构建中都得到代码分析的结果,但它在每天一次时非常必要。
顺便提一下,代码分析并不新鲜。如果您查看您链接的MSDN页面,您会在“其他版本”下拉菜单中找到2010年的版本。实际上,在成为产品的一部分之前,代码分析功能作为名为“FxCop”的Visual Studio插件已经可用。

5
谢谢回复。解决方案肯定是重新进行代码分析。输出窗口显示了这一点。重新构建并运行代码分析所需的时间几乎相同。重新构建时不会运行代码分析。构建时间要快得多。 - user2732185

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接