Performance 为什么MSBuild任务ResolveProjectReferences需要很长时间?

Performance 为什么MSBuild任务ResolveProjectReferences需要很长时间?,performance,msbuild,silverlight-4.0,.net-4.0,Performance,Msbuild,Silverlight 4.0,.net 4.0,我有一个Silverlight 4解决方案,它需要很长时间才能从VS2010和MSBuild 4命令行构建 该解决方案包含42个项目,一个是Silverlight应用程序项目,一个web应用程序项目,其余是类库 MSBuild diag摘要显示这些任务花费了相当长的时间 29891 ms ResolveAssemblyReferences 68 calls 115609 ms CopySilverlightApplications

我有一个Silverlight 4解决方案,它需要很长时间才能从VS2010和MSBuild 4命令行构建

该解决方案包含42个项目,一个是Silverlight应用程序项目,一个web应用程序项目,其余是类库

MSBuild diag摘要显示这些任务花费了相当长的时间

29891 ms  ResolveAssemblyReferences                 68 calls
115609 ms  CopySilverlightApplications                1 calls
131547 ms  ValidateXaml                              36 calls
425688 ms  ResolveProjectReferences                  68 calls
634031 ms  Build                                     71 calls
项目依赖关系安排得很好,构建顺序看起来很合理。我将所有项目编译到一个输出文件夹中,所有引用的项目都具有CopyLocal=false


看起来最坏的罪犯是最坏的,但是为什么要花这么长时间呢

您是否在构建时启用了代码分析?如果是,请尝试禁用它。他也有类似的问题。禁用代码分析后,生成运行速度将提高5倍。

ResolveProjectReferences
必须生成每个引用的项目。 因此,有些项目可能会多次构建

使用文件引用和中心生成过程来消除此问题

我们将构建时间从12分钟缩短为3分钟