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&#174; 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

Reply via email to