Search code examples
windows-installerinstallshieldinstallscriptinstallscript-msi

MSI or Install Shield


We need to create an installer for our application. Currently we are using Install Shield LE that is free with Visual Studio 2010. We require some of the non-free features of Install Shield and were thinking of upgrading to the full version.

However, before we upgrade, we would like to consider other options. From talking with other guys around the office, they mentioned MSI. I am new to the installer world so I was curious if any of you had an opinion on MSI or Install Shield.

Installer Requirments:
1. Must support custom actions
2. Must support dialogs
3. We also need to get info from the user at run time and put that in a config file. Not sure how this would be done. I think Install Shield has Install Script?
4. If it supported multiple languages, that would be a huge bonus

Any input would be appreciated.

Thanks


Solution

  • InstallShield ( including 2010LE ) does create MSI projects. I happen to be an expert in both WiX and InstallShield and I use them together. If you read my blog you'll find several articles and I am currently working on a presentation that goes into the details.

    WiX is good but you'll be doing a lot of raw XML and the bootstrapper options are still primitive. InstallShield is good at Dialogs and Bootstrappers among other things but not as clean as WiX at others. I get the best of both worlds by combining them.

    BTW 2010LE users can upgrade to Professional for $500 which makes it $1499 instead of $1999. At my bill rate that's a couple days worth of work so the ROI on InstallShield is clear to me. Can I get everything done in Wix? Yes... eventually. You mention multilingual support so that will cost more money. :-(

    IS2010LE can be made to do custom actions via WiX merge modules. Try to avoid needing them though.

    BTW, you won't find yourself using InstallScript much. IS has built in data driven custom actions for both reading and writing XML ( WiX only has write ) to your config files based on properties set in your UI.