Installer Products and why I'm not sure I like them very much...

So I've had the chance to play with InstallShield DevStudio 9 quite a bit over the past few weeks and I can't say that I'm very happy with the product.  I think they've made a classic mistake with their design in that they've targeted their product towards non-programmers in order to increase their deployment base.  You'll probably want some examples so I'll start right in.

1.  Multiple project types with different abilities per project type.  I think this is the dumbest thing you could ever do.  It turns out that they merged two products into one, so you have the option of going the InstallScript route, which is actually really powerful, but lacking all of the fundamental MSI setup features, or you can go the MSI Setup route and get all of the MSI features, but now only a subset of the InstallScript features.

2.  Everything is based around basic conditionals.  I'm not a large fan of conditionals.  Especially when logic begins to get complex, you'd like the full support of some sort of scripting language rather than dropping all of your eggs into a single script sequence.  To exacerbate this problem the numbers and types of properties you have access to are kind of limited at first, until you start to define your own.  Unfortunately, they do so much under the covers, that until you've created 10+ installs with the product, you won't even know all that is available to you, and you'll wind up rewriting a lot of your own logic to do even the most basic of things.

3.  Let me make a dialog damnit.  Turns out to add a dialog into the scripted sequence you have to perform an act of god.  By act of god I mean go in and edit all of the default dialogs so that now your dialog is next in line to be king rather than whatever the default logic permitted.  This can be a real PITA, and is highly counter-intuitive since they allow you to order your own dialog within the script sequence.  This is a huge lie, since your dialog never gets spawned (this is my experience, if I'm wrong then bugger off), and the old order that is defined by the Next buttons on each of the dialogs is adhered to.

4.  Come on, Visual Studio has the right idea with the whole custom actions in C#.  I love custom actions in C# because they frigin rock and let me have the full power of .NET at my fingertips from within the installer.  Not so in DevStudio.  You have to resort to the kludgy and dated dropping of helper applications onto the target machine.  Interaction between the helper application and installer is very difficult as you might suspect.  I actually resorted to file IO at one point just to get some values from my helper application back into the installer system so I could pass the data back into the helper file during uninstall.

In retrospect I probably would have just used the Visual Studio installer because of my famliarity with the products limited number of features.  I don't really need all of the bells and whistles of the InstallShield product, but I have to say it has loads more features than it's VS counterpart and is probably quite the installer if you really want to spend the time learning it's various nuances and building yourself a library of helper functions in the proprietary InstallScript language and a series of helper dialogs to do the various acts of collecting user information.  At the end of the day, building these items is simply too tedious if you only plan on doing a one off installer.

 

Published Wednesday, March 24, 2004 5:27 AM by Justin Rogers
Filed under: ,

Comments

Wednesday, March 24, 2004 9:45 AM by Matt Hawley

# re: Installer Products and why I'm not sure I like them very much...

I enjoy using NSIS...its more developer friendly because you get to write the script yourself :)
Thursday, March 25, 2004 3:25 AM by Matt Berther

# re: Installer Products and why I'm not sure I like them very much...

Justin: Regarding item 4, DevStudio 9 does support C# installers. These are loosely similar to C# custom actions, except for the fact that you can not control where in the sequence they occur.

Look in the System.Configuration.Installers namespace for how to author them.

When you want to place one in a DevStudio project, select the component that contains the Installer class and select the option about it being a .NET installer. Arguments can be passed to the installer via the command line arguments option in the same grid.
Thursday, March 25, 2004 3:35 AM by Justin Rogers

# re: Installer Products and why I'm not sure I like them very much...

Yes, we actually run a number of installers, however, I wasn't aware this was as powerful as the Visual Studio custom actions. For instance, I'm able to run my Installer class, but not able to get to needed MSI properties.

Also, yes, not being able to control where they occur is yet another issue with them. I've looked at these, they simply aren't powerful enough to take the place of custom actions, and really only have their place if you don't need the installers to actually interact with the installer process. At least that is what I've taken away from the whole experience.
Saturday, March 27, 2004 11:51 AM by Brian Desmond

# re: Installer Products and why I'm not sure I like them very much...

I've never used the VS Installer. All of the installer's I've built have been in DevStudio 9 or Developer 8. Probably 30 or 40 MSIs by now.

It's really not *that* bad, just takes some getting used to. I don't use any of the wizard crap. just skip to the treeview with everything in it & find what I want.

Leave a Comment

(required) 
(required) 
(optional)
(required)