I asked... > From: John Aldridge [mailto:j...@jjdash.demon.co.uk] > > Are there any guidelines for how best to create both a 32 and a 64 bit > installer from a single WiX > source file? I can use variable substitution to set the Platform attribute > and pick up the right > versions of the various executable files, but I'm puzzled about how to manage > Component GUIDs. Do they > need to be different for the 32 & 64 bit installers, and if so does > WiX/Votive provide me any tools > which can be used to manage this difference? It is possible that both the 32 > and 64 bit versions will > need to be installed at once, if that matters. > > A separate but perhaps related question is how to manage a new product > version which can be installed > side-by-side with the current version. My understanding is that I need to > allocate new Component GUIDs, > but I'd rather not spend hours with GUIDGEN copy & pasting hundreds of new > entries! I guess I could > write a utility to process a WiX source file and replace every GUID in it, > but is there a better way?
Replies pointed me at <http://blogs.msdn.com/heaths/archive/2005/10/24/windows-installer-on-64-bit-platforms.aspx> which includes the advice > If a 32-bit component is contained in both a 32-bit installation package > and a 64-bit installation package it may have the same component ID but > 32- and 64-bit components should have different component IDs, just as > 32- and 64-bit products should have different product codes. which seems clear enough. In addition, labour saving ways of replacing GUIDs were suggested. Thank you all for the help so far. I do need to support patching, so automatic GUID replacement as part of the build process won't do. My tentative plan is to use Guid="*" rather than explicit GUIDs, and to rely on the autogeneration mechanism to keep the GUIDs stable but different for things installed to ProgramFiles and those installed to Program64Files. This seems to work nicely for the installer itself, but I'm also generating 32 & 64 bit versions of a merge module. The 64 bit installer includes both versions of the msm, the 32 bit installer just the 32 bit msm). I plan to have the Votive project define, for each target platform, a different GUID as the value of the 'Seed' preprocessor variable, and then to code the merge module like the following: <Module Id="SomeModule" ... > <Package Id="$(var.Seed)" Platform="$(var.Platform)" ... /> <Directory Id="TARGETDIR" Name="SourceDir" ... > <Directory Id="MergeRedirectFolder" ComponentGuidGenerationSeed="$(var.Seed)" ... > <Component Id="SomeFile.dll" Guid="*" ... > : Does this all seem sensible? -- Cheers, John ------------------------------------------------------------------------------ _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users