All the software is equally bad…
Well, I know some pieces of software that are good, but I won’t mention them today.
One of our msbuild vs nant choice criteria isĀ a product versioning support.
Sad or funny things are:
- both don’t include sane tool out of box;
- both need installing NAntContrib or MSBuild Community Tasks;
- even then both can’t sanely write AssemblyInfo.cs in order to leave other properties intact; if you had InternalsVisibleTo satellite unit test assembly - it won’t build then;
NAntContrib Version task is way more functional.
Additionally, MSDN page design where MSBuild reference manual lives, is awful.
I wonder if it’s the reason to choose a build tool, while they are approximately equal.
OTOH, MSBuild has a great GenerateBootstrapper task to install .NET framework from MSI (WiX sample included in the referenced wiki).
We’re choosing a build tool for VS 2008 project.
I’m not expert in any, only had put together a couple of NAnt scripts. So I give no objective technical information in this post, just impressions.
- First discussion of this choice, back in 2005, is almost strictly in favor of NAnt. Though, read it to know about MSBuild differences and advantages.
- Recent blog post by Oren Eini and int comments are also generally for NAnt. Additionally, you can use <msbuild> task in NAnt.
- The latter mentions Yahoo! ALT.NET group discussion. Newsgroup fan can read a lot there, I also had some. There are reasonable votes there for MSBuild because it’s just deployed with .NET, ant it’s nearly functionally equivalent to NAnt.
Though, I can’t forget first discussion that mentioned lack of tasks like editing files or grabbing text output, or incrementing build number - (you know, devil is in details!) - it seems to me that NAnt wins.
Here’s the most useful message there, as for me.
You see, I didn’t go too deep down simple Google search. That was enough for me, you’re welcome to research deeper and to correct me… especially until I started creating build procedure <grin>
And I trust mature and popular opensource products.