tags:

views:

143

answers:

7

We have a project with several applications including web applications, web services, windows services and windows applications. We also have prerequisites like SQL Server Express, .NET 2.0 and others. We don't have much user interaction during the setup but we want to add more intelligence to it.

We are currently using Visual Studio to generate the integrated setup for all this. But we continuously struggle with it to make it work like we want.

We want to change our setup tool into something simpler and flexible enough.

We are also looking for a better solution for the upgrader, that must run upgrade sql scripts on the deployed system. Maybe this could be integrated with the setup.

We are thinking about using InstallShield, but some say that it brings a lot of complexity. What do you think is the best tool for this job?

Thanks!

+3  A: 

WiX is your friend here.

http://wix.sourceforge.net/

WiX is an incredibly flexible setup technology, xml driven and with a lot of tools and knowledge out there.

There are a number of blogs that are relevant to WiX out there. Check out:

http://www.joyofsetup.com/

http://robmensching.com/blog/

Martin Peck
A: 

Since you mention Visual Studio and .net, I'm assuming you are deploying to Windows based servers, but even still you might want to take a look at fabric. It is a python based deployment tool. You can write and launch scripts to deploy and setup your servers, web services, etc.. The only thing is I'm not sure how well it plays with Windows as the target server.

nstehr
A: 

If you want to or have to adhere to the MSI standard installs for the Windows platform, I'd second Martin Peck's recommendation for WiX. It's basically the same technology the VS-setup projects and Installshield use - with all its pros and cons.

If you do not need to be on the MSI train, you could also look at simpler alternatives - my favourite here would be InnoSetup. It's free, it's totally easy to use, it's open source (Pascal/Delphi), it can install your apps in a fraction of a second, it JUST WORKS! :)

Marc

marc_s
A: 

There are three things I don't like about InstallShield:

  1. It seems overly complex
  2. There is no way (to my knowledge) of generating from the command line, you always have to use the GUI, which is a hindrance for automated builds.
  3. It seems to add an excessive amount of overhead.

I've used NSIS a fair bit, which is open source. Whereas InstallShield has almost a too high level a view of things, NSIS is almost a too low level. You have to write the code to poke the registry entries in for uninstalling via Add/Remove programs for instance. You will be able to get the job done, and have full control of exactly what it will do, though, and it will package into a very compact single executable.

I have no experience with InnoSetup or WiX - either of them may steer a course between the two extremes of InstallShield and NSIS. Both are freely available and worth a look as well.

Evan
I used to use InnoSetup all the time, until I created my own setup program - which didn't go very well, mind you...http://www.freewarefiles.com/ has some pretty awesome setup apps there.
baeltazor
A: 

After reading these answers we ended up deciding to use Advanced Installer, it has the advantage of adhering to the MSI standards and also of being quite simple to use.

Paulo Manuel Santos
A: 

I have used Installshield, NSIS, Visual Studio and WiX. Installshield always produced a bloated installer for me and costs alot. Visual Studio can be limited in some of the things that it can do, but overall it is pretty good. NSIS is definately a nice little install system since I have use it for a few products (one that has been downloaded and installed about 750k times) but when I was using it it did not follow the MSI rules. WiX is great and provides you with alot of functionality as well but is script based but there are GUIs for it now too.

Of course it looks like you have decided to use Advanced Installer. Good luck.

SteveM
A: 

We have chosen WiX too. Mind you that you will still need to know all about Windows Installer mechanisms. WiX is version control friendly and very transparent

If you need custom actions and would like to write that in a .NET language then go for the CustomActionAttribute approach. You can write setup dialogs using WinForms.

This site is also a very good source InstallSite.org

Vapour in the Alley

related questions