TFS MSBuild:在单个TFS .proj文件中合并并行构建和顺序构建



我写下这个场景:

  1. 我们有一个TFS build .proj,它依次构建了3个依赖解决方案。
  2. 然后并行构建大约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

最新更新