TFS builds running in parallel on the TFS build server 2008, how to specify dependencies?
-
Monday, February 18, 2008 10:51 AM
I am trying to get my TFS builds running in parallel on the TFS build server 2008.
After setting the MaxProcesses in the tfsbuildservice.exe.config file on the build server to a value greater 1, I see that the build starts in parallel.
But I have the problem that my TFSBuild.proj file contains several solutions to build, like this
<SolutionToBuild Include="$(BuildProjectFolderPath)/Source/Program1.sln">
<Targets></Targets>
<Properties></Properties>
</SolutionToBuild>
<SolutionToBuild Include="$(BuildProjectFolderPath)/Source/Program2.sln">
<Targets></Targets>
<Properties></Properties>
</SolutionToBuild>
<SolutionToBuild Include="$(BuildProjectFolderPath)/Source/WixInstall.sln">
<Targets></Targets>
<Properties></Properties>
</SolutionToBuild>
The last solution depends on the first 2 solutions. When build in sequential is all works fine.
There is a comment in the TFSBuild.proj file saying this:
To change the order in which the solutions are built, modify the order in which the solutions
appear below.
But after enabling parallel build they do not build in sequence, are the any way that I can tell that the last solution depends on the first 2 solutions?
Answers
-
Wednesday, February 20, 2008 1:44 PM
Steve
Thanks for the input, I did not like the solution to reorder the build into nested tasks.
I found a workaround, I specify the BuildSolutionsInParallel property to false in my TFSBuild.proj file,
<BuildSolutionsInParallel>false</BuildSolutionsInParallel>
and then it will build the solutions in sequence, but the individual solution projects will be build in parallel, that is close to what I want.
Bent
All Replies
-
Monday, February 18, 2008 11:34 AMB-Dulong,
See if these posts answers your question:
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=151885&SiteID=1
http://msdn2.microsoft.com/en-us/library/z7f65y0d.aspx - (Additional Properties MetaData section)
The basic idea is to use MSBuild tasks and nested solutions to solve the problem.
Hope this helps,
Steve - www.platinumbay.com -
Wednesday, February 20, 2008 1:44 PM
Steve
Thanks for the input, I did not like the solution to reorder the build into nested tasks.
I found a workaround, I specify the BuildSolutionsInParallel property to false in my TFSBuild.proj file,
<BuildSolutionsInParallel>false</BuildSolutionsInParallel>
and then it will build the solutions in sequence, but the individual solution projects will be build in parallel, that is close to what I want.
Bent -
Wednesday, March 19, 2008 6:03 AM
Are you sure projects are built in parallel? I just did the same thing and looks like projecty build is serialized.
-
Tuesday, March 25, 2008 12:28 PM
It works for me.
Did you remember to change the setting for the MaxProcesses in the tfsbuildservice.exe.config file on the build server to a value greater 1, and also to restart the build service on the build server?
B-Dulong -
Tuesday, March 25, 2008 3:24 PM
One of our solutions has 60 or so native VC++ projects. I can see 4 instances of MSBuild.exe in task manager, but only one instance at a time of cl.exe. This solution's build is definetelly serialized. Does it have to do with the fact that projects are C++?
-
Tuesday, March 25, 2008 3:40 PMI have only used it for C# projects, so it could be the case.
/B-Dulong -
Monday, September 08, 2008 7:04 PM
Once again, native developers get the short end of the stick.
Anybody found a solution for this problem?

