NSIS (Nullsoft Scriptable Install System) is a very capable open source tool for creating Windows installers. It's fast, and extremely lightweight, with the installer adding only a tiny 34KB to the compressed size of your files. And with the program supporting ZLib, BZip2, and the new and very efficient LZMA compression scheme, even that could be much smaller than you think.
Despite its tiny size, NSIS is still packed with features. There's extensive control over the interface (fonts, icons, backgrounds, dialogs and more); your installer can download files as a part of the installation process; and one installer can support multiple interface languages, and all modern Windows versions. Of course the installer will generate an uninstaller, and NSIS can be extended with a wide range of plugins.
The process of building your installer is a little more complicated than with some tools, as you must learn and work with NSIS powerful scripting language. The program comes with a range of sample scripts to help you get started, though, so it shouldn't take long to learn the basics. And once you've produced a script or two you'll appreciate the extra flexibility this language provides, the way it lets you create custom logic to deal with just about any installation and upgrade scenario.
What's new in 3.05 (see changelog for more info):
- Added PEAddResource and PERemoveResource
- Added LoadAndSetImage
- Allow quoted library path in System::Call (bug #546 and bug #1225)
- Improved nsExec Unicode and tab output parsing (bug #1232)
Although it takes a little while to master NSIS, your efforts won't be wasted. No other installers cram so much power into such a tiny overhead