2011-04-28 66 views
1

我會放下場景:TFS的MSBuild:並行結合建立和順序建立在一個單一的TFS .proj文件

  1. 我們有一個TFS建立.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" /> 

`

回答