将我们的解决方案升级到Visual Studio 2012后,我们希望利用新的Code Analysis功能。但是,运行时间太长,因为它在运行之前正在重建项目和依赖项目,即使代码没有更改也不需要重建。
如果不需要重建,有没有办法阻止它重建代码?
答案 0 :(得分:2)
我认为上面的约翰斯声明是不正确的。
根据我的经验,无论项目是否配置为代码分析,项目总是会重建。
我有100多个项目的解决方案。如果我选择1个项目并仅对该项目运行代码分析,它将重建该项目及其所依赖的所有项目。它不会对其他项目运行代码分析,但它仍然会重建它们。
那为什么必须重建所有子项目来运行代码分析呢?
答案 1 :(得分:1)
如果您刚刚开始使用代码分析,那么您可能会误解症状。你看到: Ë 代码分析需要花费大量时间 2.在代码分析期间,项目构建
您可能会将这两种症状结合起来,并得出代码分析正在强制重建项目的结论。这将是一个错误的假设。试试这个:
您会发现您的解决方案实际上是“构建”的,但由于项目是最新的,因此编译器和其他工具不会运行。
因此,代码分析首先会运行您的解决方案的构建,但它将像上面的#3一样构建 - 没有任何改变,因此工具将无法运行。只运行代码分析工具(FxCop)。这比你想象的要长,但值得。
在我们的环境中,我创建了一个“本地”解决方案和项目配置,从“Debug”复制。此配置与“Debug”大致相同,但不运行代码分析。这是我们的开发人员日常使用的。当代码被检入TFS时,它再次在“本地”配置中启动持续集成(CI)构建,无需代码分析。
另一方面,每晚构建运行“Debug”配置,因此它运行代码分析。我发现我们不需要对每个构建进行代码分析的结果,但是每天都需要一次这么做。
OBTW,代码分析并不新鲜。如果您查看链接到的MSDN页面,您将在“其他版本”下拉列表中找到该页面的2010版本。实际上,在代码分析功能成为产品的一部分之前,代码分析功能可用作名为“FxCop”的Visual Studio外接程序。