Fog Creek Software
Discussion Board

Inno Setup - a free setup program

On 2002-10-02, Joel wrote about writing the FogBUGZ 3.0 setup program from scratch, because existing setup toolkits couldn't do what was needed.

Well, there is at least one free setup program with full source code available: Inno Setup by Jordan Russell.

Inno Setup is written in Borland Delphi.


Thursday, October 3, 2002

Plus you can extend it both functionally and visually using pascal code - a truly excellent installer. You can even use your own pictures (although not quite in the same way that Joel has.

Admittedly it wouldn't have had the roll-back features built-in that Joel wanted but it's always worth a plug as it has made my life much easier over the last couple of years. My company has virtually dropped all professional installer products since I introduced them to Inno Setup.

Simon Steele
Thursday, October 3, 2002

Re: the "reversability" of the setup process.

To implement this "reversability", one simple option would be to have the setup program incrementally build a script that would be executed only after the user has confirmed the last step. At each step, the setup would add new ops to the script to perform actions resulting in the config defined by that step.

Using this method, going back a step simply involves discarding corresponding ops from the script.

It would seem from reading Joel's post that  at each step FogBUGZ 3.0 setup perform actual operations that need to be undone in case the user steps back.

I'd be interested in knowing the specifics of why this has to be the case.


Thursday, October 3, 2002

"this" above means having "FogBUGZ 3.0 perform actual operations"

Thursday, October 3, 2002

Fogbugz is (or at least V2.0 is) an asp (web based) app - so if you're going to install it properly you need to test the setup as you go to make sure that it is actually installed properly.

Further, it can use SQL server as its database so you've got to go find the server (this is simply user friendly) and subsequently create thing in it.

If you just build then execute a script there are rather a lot of issues about what you do when something goes wrong - ultimately, if you're going to be nice to your customers, you need to be able to roll back everything the script has done up to the point at which it fails... which is where we came in!

James Murphy
Thursday, October 3, 2002

Although my personal opinion is that InstallShield is too expensive for most developers, I have written installations using said product in conjunction with Windows Installer that install binary components, find the local SQL server, create databases, run initialization scripts, and add IIS virtual directories, all of which is reversible in rollback operations.
The trick (if you can call it that, as it's quite documented) is to write custom actions that execute VBScript. Did it do what I wanted out of the box? Nope. Did it require me to write code? Yes, but not nearly as much as writing an entire installation app from scratch. Plus, you can make it re-usable by using custom tables to store the installation-specific stuff.
So, getting back to InstallShield charging too much - you don't have to use InstallShield to do the above. You could instead use the tools included in the Windows Installer SDK (eeyuck) or one of the open source tools. Although they don't have as polished an interface as InstallShield, and you may have to do more mucking around in tables, you can still get the job done.

Andy Hopper
Thursday, October 3, 2002

Saw this post and just had to comment. As a Delphi programmer, I found the Inno Setup by accident while searching online for something else. Anyway, I started using it about a month or two ago and I must say, it's a God send. In fact, I still have a hard time believing it's FREE! Goodbye Install Shield.

Marty Potokar
Thursday, October 3, 2002

Another alternative is Nullsoft's NSIS [ ].

Yes, the web page and everything about it looks utterly unprofessional. Yes, the scripting language is horrible (But it DOES have a scripting language). NSIS installers don't look like Microsoft / InstallShield ones (Inno setups do; I don't think that's a big plus - anyone really like that huge, entire screen blue backdrop?)

But once you get past those hurdles....

It's extremely robust.
It's extremely quick.
It's extremely small (20k-40k over bzip2 or gzip archive; Don't know about Inno these days).
It's open source.
If you don't like the original scripting language, you can use C/C++ plugins.

The generated installations appeal IMHO to both power users and non power users - you get a progress bar, and OPTIONALLY a detailed account of what's going on behind the installation scene, which is something I miss in all other installers.

If you want to see a real world example, download TortoiseCVS [ ] and you'll get both an example of NSIS in action, and an enjoyable version control system that works locally, in an intranet and across the internet at no extra cost :)

Disclaimer: Not affiliated with neither NSIS nor Tortoise, just a happy user of both.

Ori Berger
Friday, October 4, 2002

<quote src="Ori Berger">
NSIS installers don't look like Microsoft / InstallShield ones (Inno setups do; I don't think that's a big plus - anyone really like that huge, entire screen blue backdrop?)

That's not entirely true. If you go to the Inno Setup web site:

you will notice that you can choose between the classic and modern styles. In fact the classic style is no longer supported in Inno Setup 3.

Jan Derk
Friday, October 4, 2002

NSIS has one big advantage over Inno for me:

NSIS is written in C++. As a result, I don't have to buy another compiler just to modify the setup program.

Obviously, that's not a problem for people who already have a copy of Delphi.

Chris Tavares
Friday, October 4, 2002

Incidentally, in case it's not been mentioned, Joel uses Inno Setup for CityDesk's installer.

John C
Thursday, October 17, 2002

*  Recent Topics

*  Fog Creek Home