Building Silverlight Apps with NAntPosted by Rick Sternquist
Wednesday, April 22, 2009
A Daily Build is one of the true cornerstones of software development. As Steve McConnell wrote in one of my all-time favorite articles, Daily Build and Smoke Test, a Daily Build "minimizes integration risks, reduces the risks of low quality, provides easier defect diagnosis, and improves morale".
On my current Silverlight project at Chicago Technologies, one of my first tasks was to develop an automated, Daily Build process for the team. Over the years, NAnt has become my favorite tool for automating .NET build processes. The following are a couple of considerations when working with NAnt and Silverlight:
- NAnt - Use NAnt 0.86 Beta 1 Release. I have found this release to be stable and it supports both .NET Framework 3.5 and Silverlight 2.0 targets
- NAntContrib - Use NAntContrib 0.85. NAntContrib provides tasks and tools that aren't available in NAnt. As far as I'm concerned, NAntContrib is a must for two reasons: the MSBuild task and the SCM-related tasks for SourceSafe, StarTeam, and Subversion.
- MSBuild - Utililze the NAntContrib task, MSBuild, for the actual compilation of the application. More on this later.
An important note regarding the integration between Subversion and NAntContrib. On our project, we're using Subversion and the TortoiseSVN client. NAntContrib utilizes "svn.exe", the command line utility, for its SVN-related tasks. However, the installation of TortoiseSVN does not contain "svn.exe". I had to install an additional Subversion client that utilized "svn.exe" Without the command-line utility installed, your SVN-related NAntContrib tasks will not work. I used CollabNet Subversion Command-Line Client v1.6.1 (for Windows).
I hope this information helps you. My next post will contain a sample NAnt build script for building Silverlight applications.