我會放下場景:TFS的MSBuild:並行結合建立和順序建立在一個單一的TFS .proj文件
- 我們有一個TFS建立.proj依次建立3級依賴的解決方案。
- 然後它並行構建約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" />
`