Project Description

NUBuild is a command line .Net build tool that has been designed and developed keeping an individual developer in mind and also ease the continuous build and integration process. Has the ability to target all .Net framework versions.Developed with VB.Net and Net 2.0 framework.

NUBuild is a build automation software and is .Net based. It acts as an extremely intelligent tool that allows you to make use of MSBuild or DEVENV (as specified in the configuration file) to build VB.Net and C# projects and incorporates advance features and functionalites missing from other build tool like NAnt and MSBuild. It is also extremely easy to setup NUBuild on a developer's local machine and perform 'local builds' before code changes are checked into the source control reducing build failures to bare miminum and increasing productivity, specially in a large, distributed project team.

NUBuild Advantage

We all know that the build process is the heart of any software development activity and a good build system facilitates quality software development. We make changes to our source code, check into source control and wait for the build to happen (scheduled or on-demand). If the build fails, we check out the code, put a fix (hoping it will work!) and wait for the next round of a build. But it’s not so simple:
  • More often than not, it takes more than one try to get it right. And it might even take more than anticipated time to find a resolution.
  • Developer checks in the bad code and goes home
  • This situation worsens when the bad code in question is a shared or framework level component.
And all along the build continues to fail holding up others in the team (or across teams) to proceed with their development activity (if they are dependent on the failed project).This effectively results in Loss of productivity. Moreover, ask any build coordinator and you will often hear the following comments:

"I just want to build all my inter-dependent projects. And I wish I could simply say to the build tool, this the location (e.g. C:\My Projects) where I store all the projects, and here is the project (e.g. C:\ProjA) I want to build. Now go figure and build me the necessary projects and put all the built dlls in the specified location (e.g. C:\MyDLL)"

This is where NUBuild comes in.

A great feature of NUBuild is the fact that you do not have to write dense build script to get going. A simple configuration file is all you need. It provides no-touch maintenance such that you do not have to keep track of what projects are being added or deleted in the mix and whether there is the change in the dependency between projects. NUBuild will take care that for you. This leads to another great feature of NUBuild and that is it 's ability to detect and display circular reference's (dependency) which otherwise is very difficult to track down, specially in a complex , large, distributed application where you have many developers working simultaneoulsy on different projects. Last but not the least NUBuild also provides very easy version management techniques along with deployment and notification capabilities.

Key features of NUBuild are as follows:
  • Easy to use command line interface
  • Ability to target all .Net framework version i.e. 1.1, 2.0, 3.0 and 3.5
  • Supports XML based configuration
  • Supports both project and file references
  • Automatically generates the “complete ordered build list” for a given project – No touch maintenance. !
  • Ability to detect and display circular dependencies !
  • Perform parallel build - automatically decides which of the projects in the generated build list can be built independently. !
  • Ability to handle proxy assemblies
  • Provides visual clue to the build process e.g. showing “% completed”, “current status” etc.
  • Generates detailed execution log both in XML and text format
  • Easily integrated with Cruise-Control.Net continuous integration system
  • Can use custom logger like XMLLogger when targeting 2.0 + version
  • Ability to parse error logs !
  • Ability to deploy built assemblies to user specified location !
  • Ability to synchronize source code with source-control system (currently supports only MKS)
  • Display web-references !
  • Version management capability !
! - Advance features


In the current version of NUBuild, resynchronization of source (i.e. get latest copy) only works with MKS source control. In the next versions it will be enhanced to support any source control (which supports command line options)

Last edited Dec 16, 2009 at 12:09 PM by udayandas, version 19