views:

177

answers:

6

Awhile ago there was a debate whether we should use a third party installer or write our own. We've had 2 generations of internally developed installers that just do services, msmq, com+, gac and sql script by shelling out to exe's.

So I was wondering who out there is using a custom written installer for your companies specific needs? If you have any comments on our approach then let me know.

Thanks

A: 

I used to in my previous job.

The main reason why we chose to go this way was that we needed to deploy different versions of our software based on the user's name.

If you may, this was a kind of clickonce deployer, but supporting several versions at a time instead of only one.

Brann
+1  A: 

We use a custom one here. We had a lot of weird things we needed to do, including creating junctions, editing other user's registry keys (which requires finding and loading their hives), registering stuff with our third-party real-time HAL layer, etc. There might now be installer toolkits that let you do all that, but they'd be more complicated to learn than just doing it ourselves.

I think ours is all C++.

T.E.D.
A: 

Once upon a time (circa 2002) I hand wrote a tiny installer (< 200kb) which analysed the user's version of Windows and then downloaded the appropriate "main" installer for the application. Seem to see that approach is widespread use these days :)

Other than that, the majority of the time whenever I've been in a position to have to develop an installer for a program, it's been done with InstallShield, WISE, InstallAware or another alternative (like WiX).

The reality is that the cost of maintaining and supporting a bespoke installer can be quite high, especially with each new OS released and a lot of that cost can be offset by purchasing or investing in one of these commercial products (or alternatives).

Having said that, many of the installers can be quite obtuse. One specific product required the use of InstallShield Pro - just so we could script out custom actions in InstallScript!

So.. If you have something which requires a fair bit of intricate install work, it's hard to suggest an off the shelf installer package - it can be more of a nightmare in upgrade scenarios especially. If you're going to support your own custom installer, do yourself a favour and budget a lot of time, money and testing to it.

Oh, and make sure you factor in patching scenarios, upgrades, installs with or without administrative permissions, (if applicable) unattended installation, multiple language support in the UI... and so forth.. It can get very messy, very quickly.

RobS
A: 

We have our own installer package and doing it that way is not part of my list of "What not to do..."

While I do agree that many installers have very restricted feature sets and somewhat (cripling) capabilities others offer more flexibility. This being said I have not yet begun to search for alternatives but it will be something I will do in the comming year. I need something in which I can :

  1. Create my own modules, plugins or whatever the supported extention model, in a real programming language (java, .NET... whatever, if the supported language of the installer tool starts with the name of the company of the name of the tool this is a MAJOR turnoff)
  2. Supports all major versions of Windows.
  3. Supports Linux
  4. Supports silent installs

I do not think it is too much to ask and I am certain someone did something that will allow me to build on. Also quite certain that there is an open source packaging system that will do just that.

I much prefer maintaining a few specialized tools and plugins than a complete system for multi-platform deployement.

IMHO creating your own of anything should be a last resort option.

Newtopian
A: 

Symantec wrote their own installer for Norton AntiVirus 2009. It doesn't use the Windows Installer (msiexec.exe) at all.

This is how they cut the total install time to less than 1 minute.

mseery
A: 

Last time I wrote a custom installer was somewhere around 1992 under Windows 3.0. I only did it then because I was young and naive. I can't think why anyone would bother these days.

I use NSIS for my personal projects which is simple and quick. I am forced by company policy to use InstallShield for my professional products which is good too.

There was a project I had a couple of years ago where the installer was required to fiddle some of the network settings on the local PC, so I wrote a simple little EXE to do just that bit and got InstallShield to run it as part of the installation. That worked fine and was a hell of a lot easier than writing a complete installer.

Adam Pierce