我写下这个场景:
- 我们有一个TFS build .proj,它依次构建了3个依赖解决方案。
- 然后并行构建大约100个不相关的解决方案。
这似乎在。net 3.5下工作得很好,但是自从我们移动到4.0之后,似乎依赖解决方案是并行构建的,这导致了一些问题。
我可以直接输入
<Exec Command="C:PATHTOMSBUILD SOLUTION1">
<Exec Command="C:PATHTOMSBUILD SOLUTION2">
<Exec Command="C:PATHTOMSBUILD SOLUTION3">
等,但这似乎有点乱。
所以我的问题是:我如何告诉MSBUILD按顺序构建一些解决方案,然后并行构建其他解决方案?
(我们当前的构建模式在下面)
<ItemGroup>
<SolutionToBuild0 Include="$(SolutionRoot)SolutionsMSBuildTasksMSbuildTasks.sln"/>
<SolutionToBuild1 Include="$(SolutionRoot)SolutionsLevel1Level1.sln" />
<SolutionToBuild2 Include="$(SolutionRoot)SolutionsLevel2Level2.sln" />
<SolutionToBuild3 Include="$(SolutionRoot)Solutionsxxx.Reportingxxx.Reporting.sln />
</ItemGroup>
<MSBuild Projects="@(SolutionToBuild0)" Targets="Build" Properties="TeamBuildConstants=$(TeamBuildConstants)" BuildInParallel="false" />
<MSBuild Projects="@(SolutionToBuild1)" Targets="Build" Properties="TeamBuildConstants=$(TeamBuildConstants)" BuildInParallel="false" />
<MSBuild Projects="@(SolutionToBuild2)" Targets="Build" Properties="TeamBuildConstants=$(TeamBuildConstants)" BuildInParallel="false" />
<MSBuild Projects="@(SolutionToBuild3)" Targets="Build" Properties="TeamBuildConstants=$(TeamBuildConstants)" BuildInParallel="false" />
<SolutionToBuild Include="$(SolutionRoot)Solutionsxxx.LocationImporterxxx.LocationImporter.sln" />
<SolutionToBuild Include="$(SolutionRoot)xxxDevSourceserver_and_common2008.sln" />
"
您提到解决方案依赖,我想知道您是否可以使用项目参考来解决您的问题?如果你可以使用项目引用来指定项目的依赖关系,那么MSBuild将会找出哪些需要并行构建,哪些不需要。
看看你的问题是否可以通过团队建设论坛的答案来解决:
http://social.msdn.microsoft.com/forums/en/tfsbuild/thread/80b15488 - 771 - e - 4 - b0f - 92 - a3 - 0175 a639286e