Fog Creek Software
Discussion Board

InstallShield: Don't do it!


No matter how good the patch tool integrated into InstallShield is, it's not worth it. InstallShield is not "expensive but good", it's "expensive, quirky, annoying, buggy, and time consuming."

The last installer I did was using the latest version of InstallShield - the tool didn't install properly! If the company can't even use it's own tool to get a reliable install, how can you expect to generate reliable installs yourself?

The InstallScript language is cruftier than VB, the docs that ship with it are out of date, their examples are often wrong, and the thing crashes fairly regularly.

I've done many installers, and InstallShield was always the big time sink. Avoid at all costs.

Chris Tavares
Wednesday, April 16, 2003

+1 for having paid my hell dues to InstallShield and will never do it again.

I really like the Wise installer products.

Brad Wilson (
Wednesday, April 16, 2003

Yeah yeah but show me the InnoSetup or Wise utility that does binary updates for multiple versions automatically, and only downloads the bits that have changed.

Joel Spolsky
Wednesday, April 16, 2003

" If the company can't even use it's own tool to get a reliable install, how can you expect to generate reliable installs yourself?"

Exactly how I feel about a large software company in the Pacific Northwest who has a terrible security record.

Wednesday, April 16, 2003

"Yeah yeah but show me the InnoSetup or Wise utility that does binary updates for multiple versions automatically, and only downloads the bits that have changed"

The magic words "Business Opportunity" come screaming into context.

Actually there have been a number of low-end patch/update tools on the market over the years, and I don't think any of them were successful (at least they never lasted long), despite RTPatch being insanely priced.

Wonder why that is?

Mitch & Murray (from downtown)
Wednesday, April 16, 2003

We've used InstallShield, and I have to warn our users on a lot of installs about bugs that crop up near then end that InstallShield doesn't fix.

Does Nullsoft do multi-disk installs?

Wednesday, April 16, 2003

I had to select the best installer for a job a couple of years ago....I decided on a vise installer IIRC and put that into my recommendation to my boss.  <g> he then decided that what the client really wanted was installshield (because it was a more impressive recommendation, more expensive and would convince the client that we were professionally capable.) so we went ahead with that.

I still have nightmares about it......InstallShield is for enterprise level internet installs, anything less is a waste of its power.
Doing anything at all in it is slow, painful (docs out of date, I visited a couple of forums about it and the bulk of posts were users screaming in pain, dialog editing is done in another app etc etc etc) and more often than not, simply not worth the hassle.
The language is (was) a weird combination of oo type events and flat level scripting, it randomly forgot to update changed files even when instructed to specifically and occasionally tripped over itself for no good reason, requiring a complete redo of the project files to get it to work again.

we did that job and two others in installshield, the last one was nearly big enough to justify using installshield and have done none since. 

Stay away from installshield unless you (a) really need it, or (b) love pain

....the bugs, the horrible bugs...
Wednesday, April 16, 2003

I don't see the point of using a non-MSI version of Installshield, unless its cross platform or something, which isn't a problem for CityDesk anyhow.

Not that trying to see if there's a better solution isn't a bad thing in itself, though having gone to all the lengths of creating an installer in the first place I'd have thought it easier to add a patcher to that.

I'm not wholly convinced of the rightness of incremental patches other than whole files and a database application (such as CityDesk) is always going to end up with schema differences which mean that the data is going to be messed with.  Always the worst scenario when updating software and one which requires a deal of scripting, either within the application itself or outside of it.

For updating schemas I've preferred up to now to put that update into the application rather than rely upon third party tools to call scripts or updating apps.

Simon Lucy
Wednesday, April 16, 2003

What problems have people found with installers?

Wednesday, April 16, 2003

"...binary updates for multiple versions ..."

I guess it really depends on how big the complete installer is.  I see CityDesk is 8MB which is nothing to download for me personally, but then I have broadband at home and at work. 

So I guess it really depends on who your audience is, the techie (like me) or the people with AOL and a 56K modem.  Even over 56K or 33K 8MB is only 20 and 35 minutes respectively (at worst/best?).

If you've found that it's not too much of a pain to carry out in InstallShield it would be worth the money though because those times drop to 4 and 8 minutes.  For broadband users, I still submit that the change is negligable for such a small base install. 

I currently use Wise, but I don't do the bit by bit download thing, so maybe I'll check it out myself.  Thanks for the tip I guess :)

Thursday, April 17, 2003

And yes, I know I spelled "negligible" wrong.  It won't happen again :)

Thursday, April 17, 2003

How an addin on InnoSetup with 'rsync' ? This can help getting the diff/patch type functionality with a low cost.


Nitin Bhide
Thursday, April 17, 2003

This is correct - InstallShield often isn't capable of installing ITSELF properly!

For example, recently I tried to install InstallShield Express, and it yielded the error:

Path too long - C:\My Documents

So, fuck it!

Thursday, April 17, 2003

I think developers may have shied away from patch-based upgrades due to the greater possibility of breakage compared to a straight replace. (in theory a perfect patch-based upgrade would work just as well as a replacement, but then again in theory there is no difference between theory and practice :)

As Nitin pointed out, if you had time you could probably cook up a killer update system based on rsync.

Dan Maas
Thursday, April 17, 2003

forgot to add: I think it's because patch upgrades rely on stuff the user is already supposed to have, which is inherently unreliable. If I were writing or evaluating a patch upgrader I'd be *extremely* careful (e.g. checksum absolutely everything both before and after the upgrade)

Dan Maas
Thursday, April 17, 2003

Hmmm Installshield...

Been there, done that, won't ever use it again.

I don't like patches either. It is much more user friendly to have an auto-upgrade utility in your application that downloads new files/components over the Internet. A bit like virus scanners update their database.

Another option would be to use the Inno Setup internet installer:

The installation file would be very small and only the required components will be downloaded, preventing a full size download.

Jan Derk
Thursday, April 17, 2003

Count me in the Can't Stand InstallShield camp. The "scripting" language can't decide if it's structured or object-oriented and succeeds at neither; the documentation is virtually useless boilerplate that does little more than repeat the function's name ("The SetText() function sets the text."); and the user interface is outright painful in its scorn for Windows standards (but you probably know that by now). The bugs that force you to manually edit the .fgl and .ipr files to fix the problems are a joy, too. Oh, and don't forget to tell users that the empty directories the IS uninstaller leaves in Program Files are normal. (Although, I suppose you can always write more script to work-around that manually.)

I haven't used Wise myself, but I thought Wise had native support for patches. Perhaps someone else can comment on how well it works. A blurb from their site:

"SmartPatch technology for optimal upgrades: Smaller self-installing patching files are created with Wise’s SmartPatch technology. SmartPatch incorporates only the file differences between versions, which reduces the patch size."

--It feels so good when you stop--
Thursday, April 17, 2003

I think there's a reason that, despite Microsoft's endless money, they don't use a "patching" system when they release patches and service packs. The test matrix (and required available patches) explodes as you go. Add to that the requirement that all the user's files must be present and uncorrupted (I expect a common reason to patch is because of failures due to corrupted files), and it just seems like the best option is full files in your patch utility.

Brad Wilson (
Thursday, April 17, 2003

[I think there's a reason that, despite Microsoft's endless money, they don't use a "patching" system when they release patches and service packs]

What about windows update? Or is that what you meant, that they use their own system and not a third party patch system?

Speaking of which, there is a good article on MSDN about using the Background Intelligent Transfer Service (BITS) API to add auto updating to your applications. The article focuses on using it with .Net but since the BITS API is part of the OS itself (Note: only NT based OSes like NT, XP, 2003, etc. It's not part of 9x kernel based OSes) and based on COM you can use it with other COM based apps.

I haven't used it so far in any of my applications but I thought this might be a cheap alternative on Windows platforms.

Ian Stallings
Thursday, April 17, 2003

My point is that if "foo.dll" has been changed, they ship you the entire "foo.dll", not a binary diff. What Joel is talking about is support for a binary diff.

Brad Wilson (
Thursday, April 17, 2003

Gotcha, I went and actually _read_ Joel's article this time and understood what you meant to convey. Binary diffs ack.

Ian Stallings
Thursday, April 17, 2003

InstallShield is crap!  Nothing but layer upon layer of crusty legacy.  It is sad that their products are so widely used, and goes a long way towards explaining why Windows software installations have such a bad reputation.

I have always had much better experience with Wise's tools, and I can definitely recommend their Windows Installer based products, without flinching.

Tim McDaniel
Friday, April 18, 2003

Having battled with the PoS this morning, I agree. Shoot yourself and save yourself the pain. Even some things which worked in previous versions no longer work, or do not work in the same way (regression testing? wozzat?).

Tuesday, April 22, 2003

I was going to create this thread last week, but you guys beat me to it :-)

Yes, count me in for the multitude of people suffering misery with InstallShield. I don't use the IDE anymore, I just edit all the .fgl files and scripts by hand, then run IsBuild from the command line in a batch script. It's quicker and integrates better with source control. And most of the upgrade code is written in a C DLL and called straight from the InstallShield code, mainly because I know it'll work.

However, what I'd argue is worse is the lack of consideration about the install when designing an app. It's the first thing the user's going to see, so it should work as well as everything else does! There seems to be a frighteningly common scenario where all the code is written, then the install app is bolted on at the 11th hour, at which point tech support get overloaded with calls about why their software doesn't work on a customer's Win98 OSR2 installation with IE4 and no Office.

Better than being unemployed...
Tuesday, April 22, 2003

Our department spend considerable amounts of money on Installshield Pro licences, send engineers on training, yet we had major issues getting anything to work reliably in Installshield.  The script lanaguage is crap with some severe limitations, and the version we use has some major bugs, that even the latest patches did not sort out.

Best of all, is how all the included files use absolute paths, meaning that when different developers check out the installer source from out sourcecode management system, they have to ensure it's checked out the same disk location as the last person to check it in.. (nice..), we also "love" how Installshield retains the files attribute, so when we get everything from sourcesafe as readonly, it's deployed on the users systems as readonly (meaning subsequent install keep prompting the user to overwrite read-only files). 

My advice, don's go the Installshield Pro route, if you have modest requirements then try NSIS ( - free), or if you have more ambitious requirements, Wise (Although NSIS has a excellent plugin system, where you can write your own plugins in C++ to do anything you want...)

Mark Gillespie
Friday, June 18, 2004

Forgot to say, NSIS has a very good patch tool VPatch, that works well...

Mark Gillespie
Friday, June 18, 2004

I'm using InstallShield MultiPlatform (ISMP) 5.0, handed to me as a disk one day, and came up to speed in a couple of days, to create a viable installer in a week for a moderately complex software suite. I'd never worked with any installation tools before, and I've had none of the problems mentioned above, so I wonder if ISMP is even related to the tool everyone's crabbing about. Nowhere on the packaging does it say Microsoft, but rather InstallShield Software Corporation.

Thursday, June 24, 2004

I created many InstallShield working around a lots of bugs. I'm feed up, I'm leaving, I'm turning toward InnoSetup...

And that's ONLY a samble of my very own problems. We are thousands working with InstallShield. Imagine the mess...


Tuesday, July 27, 2004

*  Recent Topics

*  Fog Creek Home