Hi All I've just started porting our old VS setup projects to WiX and so far it has been a good experience. However I've ran into one problem that I can't seem to solve. I'm hoping somebody is able to give me some hints on this one.
We create custom installers for each of our clients. Each of these installers include the base application files + a set of client specific files (DLL + xml configuration files). The WiX setup solution has one project which defines the base install information. This project also includes a generated include file (dependencies.wxi) which contains information about the client for which the installer should be created. For instance the dependencies file contains the full path to the client directory (ClientIncludeFolder). The project also includes a fragment file (client.wxs) which pulls in the installation information for the client. This file looks like: <?xml version="1.0" encoding="utf-8"?> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> <?include $(var.SolutionDir)/Dependencies.wxi ?> <?include $(var.ClientIncludeFolder)/ClientIncludes.wxi ?> </Wix> The ClientIncludes.wxi file contains: <?xml version="1.0" encoding="utf-8"?> <Include xmlns="http://schemas.microsoft.com/wix/2006/wi"> <Fragment> <!-- Include the default client files --> <?include $(var.SolutionDir)/<PRODUCT_NAME>/ClientBase.wxi ?> <Feature Id="Feature.Client" Title="$(var.ClientName) client files" Description="Installs the client files for the $(var.ClientName) client" Absent="disallow" Level="1"> <ComponentGroupRef Id="CGroup.ClientBase" /> </Feature> </Fragment> </Include> Using this method we can automatically generate an installer for each of our clients simply by generating a new dependencies.wxi file before the build. Besides the client specific installs we also have a multi-client install which includes all the client information. This installer is only used internally by the test department and the business analysts. The problem is now how to create the multi-client installer. Ideally we would like to include the individual client fragments however because each client 'redefines' a set of common include variables that doesn't work (the compiler complains that the variable has already been defined before). I've been wondering if it is possible to put all the client fragments in their own wxs however it is not possible to reference a wxs file from outside the project. So does have anybody have any suggestions on how to include an external WXS file (from Votive / MsBuild) or a cunning trick to solve this problem with include files. Oh and finally we're working with VS2008 & Votive on the latests nightly of WiX. Thanks heaps Patrick ------------------------------------------------------------------------------ Download Intel® Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users