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

本文关键字:TFS 构建 顺序 合并 并行 文件 MSBuild 单个 proj | 更新日期: 2023-09-27 17:53:50

我写下这个场景:

  1. 我们有一个TFS build .proj,它依次构建了3个依赖解决方案。
  2. 然后并行构建大约100个不相关的解决方案。

这似乎在。net 3.5下工作得很好,但是自从我们移动到4.0之后,似乎依赖解决方案是并行构建的,这导致了一些问题。

我可以直接输入

<Exec Command="C:'PATH'TO'MSBUILD SOLUTION1">
<Exec Command="C:'PATH'TO'MSBUILD SOLUTION2">
<Exec Command="C:'PATH'TO'MSBUILD SOLUTION3">

等,但这似乎有点乱。

所以我的问题是:我如何告诉MSBUILD按顺序构建一些解决方案,然后并行构建其他解决方案?

(我们当前的构建模式在下面)

<ItemGroup>
  <SolutionToBuild0 Include="$(SolutionRoot)'Solutions'MSBuildTasks'MSbuildTasks.sln"/>
  <SolutionToBuild1 Include="$(SolutionRoot)'Solutions'Level1'Level1.sln" />
  <SolutionToBuild2 Include="$(SolutionRoot)'Solutions'Level2'Level2.sln" />
  <SolutionToBuild3 Include="$(SolutionRoot)'Solutions'xxx.Reporting'xxx.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)'Solutions'xxx.LocationImporter'xxx.LocationImporter.sln" />
<SolutionToBuild Include="$(SolutionRoot)'xxx'Dev'Source'server_and_common2008.sln" />

"

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

您提到解决方案依赖,我想知道您是否可以使用项目参考来解决您的问题?如果你可以使用项目引用来指定项目的依赖关系,那么MSBuild将会找出哪些需要并行构建,哪些不需要。

看看你的问题是否可以通过团队建设论坛的答案来解决:

http://social.msdn.microsoft.com/forums/en/tfsbuild/thread/80b15488 - 771 - e - 4 - b0f - 92 - a3 - 0175 a639286e