Thursday, April 14, 2011 10:34 AM
Our product software suite is quite large with several solutions that are dependent on each other. We like to parallelize as much as possible so we are thinking of putting each solution in one build definition.
What we need then is:
- A way to get dependent output from one solution to another
- A way to have an overall build that starts multiple builds for the solutions and combine all the outputs
TFS does not support something like this. Are there any templates or solutions available for scenarios like this?
Thursday, April 14, 2011 4:56 PM
Hi Rob -
Not sure whether there is a template which could help you right away. However, here are my suggestions..
1. How to get dependent outputs?
direct build output path of every .Csproj (C# project) to a some folder called "BuildOutputs". This buildoutputs can be one of the child nodes of your root node, so that every project can drop its own assembly there
Inside the solution, prefer assembly reference. Let project 2 refer project 1's assembly from BuildOutputs folder. (Ensure reference is using relative path)
As a rule, project reference when referencing within the solution. Assembly reference when referencing across the solution (inline with above statement)
Have a .bat to compile the solutions locally in the order that you want and let developers use this before check-in
2. Please refer this http://social.msdn.microsoft.com/Forums/en/tfsbuild/thread/30f54673-84e6-415b-bbad-c975f3b202fe to trigger a build from within another build....
Hope this helps.
--SS | Microsoft Certified Technology Specialist (TFS 2010)
Monday, April 18, 2011 6:17 AM
Thanks for your reply! The first point we wrote a custom code activity for which takes dependent output and header files from another build.
We also experimented with point 2 and indeed it is possible to trigger builds that way.
We are quite disappointed that there is no out of the box solution for multi-solution scenarios. Of course we can write our own custom templates but a lot needs to be done like:
- A build label for one build that consists of multiple partly builds (all solutions)
- Management to link partly builds together
- Build reports that link multiple parts together
- etc etc
It is like we are writing our own build system. We really wonder how many companies have their software product in just one solution (because that is the only supported scenario so it seems).
By the way, our software is a combination of C++, C++.NET and C# (and Delphi to make it even more complicated).
Tuesday, April 19, 2011 8:05 AMModerator
Thank you for your question.
I am trying to involve someone familiar with this topic to further look at this issue. There might be some time delay. Appreciate your patience.
Thank you for your understanding and support.
Vicky Song [MSFT]
MSDN Community Support | Feedback to us
Get or Request Code Sample from Microsoft
Please remember to mark the replies as answers if they help and unmark them if they provide no help.
Thursday, April 21, 2011 5:58 AM
Thank you for trying to help us!
I think the community would be served (at least companies with large product software) with a solution that can build dependent multiple solutions in parallel.
We'll wait, no problem!
Thursday, April 21, 2011 2:27 PMModerator
To answer your question "Are there any templates or solutions available for scenarios like this?".
One of our developers, Patrick Carnahan, has put together a customized build process template that parallelizes a build by platform/configuration.
It is possible that you may be able to modify this or use it as an example on running parallel builds.
- Marked As Answer by Trevor HancockMicrosoft Employee, Moderator Tuesday, May 03, 2011 7:54 PM
Monday, March 12, 2012 2:06 AM
Any progress on dependent multi-solution build issue now ? I also have the same problem, can you share us some info? Thanks.