views:

44

answers:

1

I installed WiX 3.5 with Visual Studio 2010, as I've read lots of people saying that WiX is a great alternative to that hellhole that is the Visual Studio Setup project, but it sure seems like it requires a lot more effort to make even the simplest installer. Am I missing something?

In a VS setup project, I can add a project output to my ProgramFilesFolder, and VS automatically sweeps up all the dependent dll's from the other projects in the solution, as well as 3rd-party libraries and such. After reading this from the (apparently somewhat out of date) online docs, I thought maybe WiX finally had something similar, but it doesn't actually pull in dependent libraries--it just makes it easier to add that single project's output to a fragment without a lot of extra typing.

So the best I can see to do is manually add to my WiX setup project every single project in my solution that I want in the installer (and set Harvest to true, since that doesn't seem to be the default). I'd probably write a little perl script to do that. Then I have to determine all the non-project dependent dll's somehow (probably easiest to look at the VS setup project for that) and add by hand some wxs code to include them (since apparently the WiX project only handles references to projects, not raw dll's). Then edit in a simple UI, for which there are samples on the web I can work from. And code for shortcuts.

Is there a better way?

A: 

This is a very subjective and long answer type question. From a quality and capability perspective, WiX kills VDPROJ. From a learning curve perspective, not so much.

Check out IntallShield 2010LE ( Limited Edition / Free ) or look at Industrial Strength Windows Installer XML ( IsWiX ) (Disclaimer: I am the coordinator ) I use this tool to do the majority of my heavy lifting and then write small amounts of WiX by hand to glue it all together.

Christopher Painter
Thanks. I briefly tried the InstallShield Limited Edition, but threw up my hands rather quickly -- it doesn't let you do much (no dialog customization to speak of, no msi creation), and after only a couple of iterations fiddling with my setup, it broke completely.
vanmelle
As for IsWix, I did run across it in my searching for better ways to do things, but the web site doesn't really give many clues about what it can do, and there's essentially no documentation. Are you saying I should download it and explore it? Does it address my dependency-including questions above?
vanmelle
I'm sorry about that. It had a user manual but I left it behind when my employer transferred the IP to me because it was done using our corporate templates. I have some articles on my blog about what IsWiX currently can and can't do. Basically it creates merge modules which you can then build installers out of. Take a look at the source to see how I arranged the .NET and WiX solutions and that's pretty much how I use it. InstallShield 2010LE is pretty limited athough you can inject all kinds of interesting things into it using WiX merge modules.
Christopher Painter