views:

54

answers:

1

We are currently maintaining a huge code base with hundreds of *.proj and perhaps 50 solutions with interconnected dependencies.

All of our code base is either .net or legacy C++.

Are current build process is a nested command line script that does automated source control pulling and then builds each solution in turn by calling devenv.exe.

I would like to take advantage of some of the better build and deployment tools and I think I have settled between either NAnt or MSBuild.

Here is the rub :

About half of the code base is being built under visual studio 2003. The other half is 2005. It is not politically feasible to migrate it forward to the current IDE at this time as it will require re-testing and introduce risk.

My question is - Has anyone successfully use MSBuild to build legacy 2003 solutions? Can I easily create customs tasks that call our legacy solutions by invoking devenv.exe?

Or should I only be considering NAnt at this time?

+1  A: 

I think a hybrid approach might be best here as well. Just use your MSBuild scripts for the VS2005 projects, and build NAnt scripts for the older VS2003 projects. If you need a build script to manage both, use NAnt to control the process, along with the NAnt MSBuild task.

The downside here is that you will have to maintain some knowledge of two build systems, but my bet is that you'd be migrating to MSBuild over the long-term anyway.

jsight
Just to keep my sanity, is it possible for MSBuild to first just fire off our existing shell script that builds our old VC2003 projects and leave NAnt out of it?
Jeremy White
Yeah, I would think you could just call the batch files from your MSBuild scripts. http://social.msdn.microsoft.com/Forums/en-US/tfsbuild/thread/2a58d361-c89b-4c0a-8884-18639aa63c7c is one URL, but I'm sure there are plenty of others with more details. It looks pretty straightforward.
jsight