我在TFS 2013上遇到了性能问题。我有一个构建定义(基于流程TfvcTemplate.12.xaml),它构建了3个解决方案(每个大约有30个项目,它是一个WPF / WCF应用程序)。构建大约需要45分钟,因为它似乎需要很长时间(在我们的工作站上构建相同的时间需要几分钟)我已将日志级别设置为诊断,并发现当msbuild编译WPF项目时,它花费大部分时间在MarkupCompilePass1和MarkupCompilePass2任务,这里有一个例子:
1540 ms GenerateTemporaryTargetAssembly 1 calls
6353 ms CoreCompile 6 calls
6840 ms ResolveProjectReferences 5 calls
94682 ms MarkupCompilePass1 1 calls
112988 ms MarkupCompilePass2 1 calls
我试图在同一台机器上的命令行中执行相同的msbuild语句(相同的参数,只是更改了日志文件路径),奇怪的是它花费了不少。同一项目的性能日志:
865 ms ResolveAssemblyReference 5 calls
1493 ms MarkupCompilePass2 1 calls
1730 ms GenerateTemporaryTargetAssembly 1 calls
1976 ms MarkupCompilePass1 1 calls
7258 ms Csc 6 calls
11879 ms MSBuild 12 calls
tfs构建代理的这种不同行为背后有原因吗?
我还尝试让代理构建一个简单的空项目,并将msbuild命令放在批处理中,以便在构建之后执行,但结果是一样的,tfs代理挂起并花时间在MarkupCompilePass1 / 2中
可以感谢任何帮助!