Packaging your DotNetNuke Module using NANT

Packaging your DotNetNuke Module using NANT

A few years back I was enlightened by Chris Paterra in the ways of using NANT scripts to aid in the packaging of DotNetNuke Modules. Using NANT to package your WAP (web application project) modules within Visual Studio 2005 is a snap, and can save you a LOT of time each time you have to come up with a new release.

Using NANT scripts we are able to create the Private Assembly Installation ZIP file and Source files for Engage: Publish by running a single command from the Command line. With our Publish module this process takes about 23 seconds on average, for our smaller modules such as Engage: F3 the process takes less than 2-3 seconds.

To get started with using NANT scripts in your own development environment you need to download the latest (0.85) release from SourceForge, you can visit the project page at https://sourceforge.net/projects/nant/

Once you've installed NANT on your machine (I install it on my C drive in a c:\nant\ folder) you'll need to add NANT to your system variables path so you can call it from the command line.

To do this:

Right click on My Computer and choose Properties

Go to the Advanced Tab

Find the System Variables section and Modify the Path variable

Add your NANT folder (c:\nant\) to the path, separating entries with the semicolon (;)

Save the settings.

Now I'd recommend adding a .BUILD file to your DNN Module's project/solution. I've provided a sample build file on our Tutorial Page at www.engagemodules.com, you do have to login in order to access the file. The provided sample file is a good start for your project, by opening up the file in VS2k5 you'll see it is a XML document with some basic information about the product name and folder location.

You'll want to find the references to Engage and EngageF3 in the BUILD file and replace them with the name of your module and business name. You can also play around with the include/exclude options in the Fileset node to add or remove certain types of files from your packages. You'll see the two sections in the build file that define which ZIP files to create, one section is called CreateBinZip and one is called CreateSrcZip.

Once you have the BUILD file setup you'll want to check a few more files in your DNN project.

In the .DNN File be sure to set your module version properly and include the SQLDATAPROVIDER files, as well as the necessary DLLs. In the AssemblyInfo.vb (.cs in our case. At Engage as we do 95% of our DNN module development in C#) be sure to setup your DLL information and version information. By setting the version number in the assemblyinfo and .dnn file you can get NANT to include the version number in the package's file name, allowing an easy way to handle upgrades from version to version for your modules.

Once you have all of the files in the solution setup properly you can run the NANT script. To do that bring up a Command Prompt, change directories to your DNN/desktopmodules/ModuleName/ folder. At the command line type "nant" and watch the magic happen.

If everything builds properly the script will create a Package folder in your Module's folder, inside of the Package folder you should find two newly created ZIP files, one labeled Install and one labeled Source.

 

Posted from weblogs.asp.net/christoc

Recent Comments

Comment Avatar

Thanks for this excellent info and espically providing the .BUILD file as starting point. It now saves a lot of time while developing modules.

Posted By: Prabhash Mishra on Apr 2009

Add Comment

Please add your comment by filling out the field(s) below. Your comment may need to be approved before it becomes visible.
Enter your first name for display with the comment
Enter your last name for display with the comment.
Enter your comment here.
If you can't type DNNRocks in, you can't post, plain and simple.
Submit Comment Cancel

Chris Hammond

Chris Hammond is a father, husband, leader, software developer, photographer and car guy. Chris focuses on the latest in technology including artificial intelligence (AI) and has spent decades becoming an expert in ASP.NET and DotNetNuke (DNN) development. You will find a variety of posts relating to those topics here on the website. For more information check out the about Chris Hammond page.

Find me on Twitter, GitHub and LinkedIn.