我有一个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。
看起来最糟糕的罪犯是ResolveProjectReferences,但为什么要花这么长时间呢?
答案 0 :(得分:2)
您是否在构建时启用了代码分析?如果是这样,请尝试禁用它。有一个类似的问题。禁用代码分析后,构建运行速度提高约5倍。
答案 1 :(得分:1)
ResolveProjectReferences
必须构建每个引用的项目。
所以有些项目可能会多次构建。
使用文件引用和中央构建过程来消除此问题。
我们将构建时间从12分钟缩短为3分钟。