Quantcast
Channel: Pathfinder Software » Desktop RIA
Viewing all articles
Browse latest Browse all 2

Deploying .NET Windows applications

$
0
0
nsis

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:

  • It is quite dynamic and offers facilities for different installation tasks like modifying the registry information, versioning and accessing OS level information.
  • It allows the user to customize the installer’s UI to a great extent and also enables addition of new dialogs in the installer.
  • It also offers additional plugins that can be integrated into the installer for performing different tasks that might be necessary
  • It even enables debugging using some built in methods.
  • There is a nice developer forum on the NSI website that contains useful tips and references for building scripts.
  • It is free!!

The drawbacks are not too many. A couple of not so nice things about this installer package are :

  • The mechanism to include the files that need to be a part of the installer is not very intuitive. It involves hard coding the different filenames in the script. Ideally, the script should have had the ability to include the complete output of a project or solution. This would prevent errors like files being missed or incorrect files being included in the installer.
  • I think the documentation that is available on the NSI website could have been a little more comprehensive. The site has some decent script examples that can get you started. But they are definitely not any close to  a real world installer that you might want to build.

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.


Viewing all articles
Browse latest Browse all 2

Latest Images

Trending Articles





Latest Images