-
Get a monthly update on best practices for delivering successful software.

I m sure many of the .NET programmers who have worked on building .NET windows applications must have had a chance to play around with the MSI/Deployment Project. This is the built-in project that the framework offers to build installers for deploying and installing windows applications. I think this project provides decent capabilities for packaging and installing windows applications but definitely has some limitations.
MSI/Deployment Project
The windows installer that was needed for our current project needed to accomplish some specific tasks like auto download and install of the .NET framework (without going out to the Microsoft site), detection of the windows version, file type association etc. We started out using the MSI/deployment project to build this installer. At a point when most of the plumbing was done, we realized that the project was'nt going to give us all that we needed. Even though the project offered the ability to build custom actions to perform specific tasks like the ones mentioned earlier, the amount of control that it gave us was pretty limited. We decided to look for other alternate solutions and that's when we came across the Nullsoft Scriptable Installer package.
Nullsoft scriptable Installer Package
Nullsoft scriptable installer (NSI) is a pretty straightforward scripting package that lets you build installers for windows applications using scripts driven approach. It is open source of course. I think it definitely is a promising alternative to the .NET deployment project. You essentially build a .nsi script which is like a master installer script that encompasses different sections for install, uninstall etc. This script can include code from other scripts and also macros. Macros are like script snippets that basically get inserted into the main script at compile time. The package comes with a nsi compiler that lets you the compile the nsi scripts and also test the installer. Let me briefly outline the pros and cons of NSI.
I think the pros are:
The drawbacks are not too many. A couple of not so nice things about this installer package are :
We were able to use NSI successfully to build the installer that we needed after a little bit of a learning curve. Anyone looking for an alternative to the traditional .NET deployment project should definitely check out NSI.
Related posts:
Topics: deployment, Desktop RIA
Although NSI is decent, I would recommend using InstallJammer. The learning curve is a lot less steep compared to NSI. I have a written a tutorial on my site on how to get Adobe AIR app installed using InstallJammer, but same methodology can be adopted for .NET applications.
Comment by Anant Garg, Friday, April 24, 2009 @ 4:41 am
Thanks for sharing this with me. I agree that InstallJammer could be another open source installer that could be worth checking out.
I m going to try it myself when I get a chance.
Comment by Karthik, Friday, April 24, 2009 @ 12:57 pm