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!
['https://Stackoverflow.com/questions/806400', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/44547/']
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/>
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](http://www.jrsoftware.org/isinfo.php). 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