Installshield or Wix

Thurein picture Thurein · Jul 1, 2010 · Viewed 16.5k times · Source

I have a pretty huge web application developed using asp.net 3.5 and I need to prepare an installer package which will be using to deploy the application on IIS 6 and 7. I have done a lot of research on Wix and Installsheild 2010 (pro) and need some advice before making decision. I notice that the installsheild is quite expense in terms of license but for me, I have enough budget so that won't be an issue. the installer should be able to perform the following processes.

  • Deploy the published web resource (aspx etc).

  • Create Virtual Directory.

  • Create Database on sql server and run some initializing scripts.

  • Modify XML files and web.config files.

  • Set the permission to allow writing to the files in the virtual dir.

I found that both technologies are capable of doing the above scenarios but I would like to get personal experience and advices.

Answer

Samuel Jack picture Samuel Jack · Jul 1, 2010

Having created a Wix installer to do exactly what you're looking to do, I'd happily recommend it.

The benefits of Wix over InstallShield as I see it:

  1. Since Wix is free, everyone on your team can install it, and thus everyone can contribute to the installer. If one dev adds a library to the project, they can update the installer as appropriate, without waiting for the "Setup guy" to do his bit.
  2. There are no issues with installing Wix on a Build Server, making it a nice fit for an environment where you use Continuous Integration. It integrates nicely with MSBuild (see the Votive project).
  3. Wix installers are built from text files, making them very easy to version control.
  4. Wix includes Deployment Tools Foundation (DTF) which makes it very easy to create custom actions using .Net code.
  5. Wix is close to the metal: you can usually apply your knowledge of Windows Installer quite directly to Wix. Conversly, learning Wix teaches you a lot about Windows Installer which is always good when it comes to providing support for deployments.

To balance this, there are a few things to be aware of:

  1. Wix does have a steep learning curve. If you haven't already, check out the WiX tutorial.
  2. WiX isn't a "visual" environment like InstallShield - it's usually text and xml all the way. Having said this, there are editors, free and commercial.
  3. Specifically relating to IIS setups: Wix 3.0 only works against the IIS 6 metabase APIs. To install on IIS 7, you'll have to enable the Metabase Compatibility feature on the target server. Full support for IIS 7 is coming in Wix 3.5 - I've tried the beta of this, and it seems to work fine so far.