[mapguide-internals] About the WiX installer
Jason.Birch at nanaimo.ca
Sun Mar 1 22:34:50 EST 2009
Jackie, did you check out these links already?
Another option may be to use environmental variables. E.g.:
<?if $(env.MyVar) = BlahBlah ?>
<?include MyConfig.wxs ?>
I think that ideally most of the configuration parameters would be stored in include files, and then the configuration ID (file name) would be passed via a single parameter. This would allow us to have standard configuration files, but would also allow developers to maintain their own config files for custom in-house installers, etc. For ease of build scripting it may be desirable to pass in a build number / name or something too though (e.g. "r3423" or "2.1 RC-1") so that the script doesn't have to create the config file on the fly.
I wonder if it would be hard to modify Paraffin to use a relative path. As far as I know it's open source, and I think the author would likely welcome the contribution. You're using the current version that works with WiX 3.0, right? Alternately, it may be worthwhile to look at heat.exe, but because this doesn't parse an existing wxs, I don't see it as a stable way of maintaining GUIDs.
As an aside, this is definitely worth reading; explains how WiX deals with relative paths, search paths, etc:
From: Jackie Ng
Sent: Sun 2009-03-01 5:15 PM
To: mapguide-internals at lists.osgeo.org
Subject: Re: [mapguide-internals] About the WiX installer
About the "build everything" batch files.
I've put in top-level batch files for:
- MapGuide (Server and Web)
And so far, they run beautifully. But I can't complete the holy trinity,
because the wix installer part is tripping me up. This is because:
1. The paraffin regeneration scripts use a hard-coded path.
2. I can't seem to pass custom wix pre-processor values from msbuild.
1. can be solved via environment variables or parameterization.
2. I have no idea. The msbuild method of passing values doesn't work :-)
I guess I could bypass msbuild and directly use the wix tools (candle,
light, etc) for more fine-grained control, but I would like to stick with
msbuild if possible. Any ideas?
More information about the mapguide-internals