views:

936

answers:

5

Suppose you release the next version of your software, you will have to manually update your WIX files to remove obsolete files and add new files, etc.

My use case is as simple as "recursively add the files under /sample/path in the user target C:\Program Files\MyApp".

Is there a program that does this sort of automation?

+2  A: 

For Wix 2 there was a tool called Mallow that did this. It was freeware and I got the source somewhere. This functionality may also be available in Heat.exe at this point, but I am not sure.

It also seems some guys in the Wix community are experimenting with a sort of automatic scanner feature where you can put files in a pre-defined release location and new msi files are continually created - ala "continuous integration".

Are you looking to do this for a lot of packages, or just for one or a few ones? Let me know the scope and I can send you the Mallow code, or dig up links for the "continuous integration" oriented solutions.

Glytzhkof
As of now, only a few (few = 1-3). But in future, I would like this to be a general feature as well. See also: http://stackoverflow.com/questions/1430497/application-to-generate-installers-for-linux-windows-and-macosx-from-a-single-co
Sridhar Ratnakumar
It's looks like you're in luck, someone else appears to have updated Mallow to Wix 3: http://neilsleightholm.blogspot.com/2008/08/mallow-for-wix-v3.html
Glytzhkof
+7  A: 

For WiX v3, look at heat.exe.

Rob Mensching
+3  A: 

You can use heat.exe as Rob stated already (i think he knows since he is the man behind), or you can write a simple harvester script, that evaluate the wix-script as pre-compile action of the wix-project. We used a vbscript for that since heat did not suit our problems, cause of different files, different directories, etc.

BeowulfOF
+1  A: 

WixEdit has an import folder function that can grab the entire contents of a folder and turn it into Directory/Component/File nodes.

Brian
+1  A: 

If Heat doesn't meet your needs, you may want to look at Paraffin by John Robbins.

Chris Shouts