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

And*_*cus 10 msbuild performance .net-4.0 silverlight-4.0

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

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

MSBuild诊断摘要显示这些任务需要相当长的时间......

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
Run Code Online (Sandbox Code Playgroud)

项目依赖项排列得很好,构建顺序看起来合理.我将所有项目编译成单个输出文件夹,并且所有引用的项目都具有CopyLocal = false.

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

小智 2

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