Creating a Windows Installer
So you want to create a Windows installer?
Here are some questions that I found myself asking:
Is the solution portable? Will it work on all versions of Windows? Ideally, Win95, Win98, WinME, Win2000, WinNT, WinXP and perhaps Win2003. Realistically, you're looking at Win98SE to WinXP inclusively.
Does the solution provide an uninstall option? Ideally the user will expect one (or both) of an option in a Start menu folder or an entry in add/remove programs.
Does the solution cost a lot? Does it have a licensing cost? Does it restrict me from different options (i.e. CD-based versus web-based installers)? Does it have a large startup cost (as in learning curve) to set it up? Will I be locked into using the installer and have to pay more money when they release version 2?
Does the solution allow me to create the normal kinds of shortcuts that users expect? i.e. Start Menu shortcuts for the current user/all user, desktop shortcuts.
Does the solution allow for splash screens and intro music?
Has the solution been well-tested in the marketplace? Have there been reported problems with it? Does the company that distribute it have a bad record with respect to spyware or similar? Has the solution existed for a reasonable amount of time in the marketplace?
Does the solution provide for modular installs? For example, being able to select individual components. Alternately does the solution provide for both a typical and custom install option?
Does the solution allow for scripted (i.e. Remote, en-masse) installs? Does the solution allow for WinNT/Win2000-style push-installs across a network?
Does the solution allow for a modify/repair option once it's installed? Does the solution allow for easy upgrades at a later date?
After writing up these questions for myself I went searching the web. There are lots of install systems out there.
I ended up deciding on using the Nullsoft Scripted Install System (NSIS). If you're not aware, Nullsoft is the company that distributes WinAmp. They met pretty much all of my needs; I haven't looked into scripted/remote installs or the modify/repair options but otherwise it does everything.
If you decide to try this out then I recommend using their recommended editor/IDE HM Nis Edit. Specifically, use the wizard within the tool to get you up and running with a demo quickly. I wrote my initial script by hand, using the reference manual... I still had something up and running within ten minutes but it was probably more painful than you want to experience at first.
See the following link to work with my default NSI template file; should save you a bunch of time!