One of the teams in our company has it's own script for creating the WiX 
fragment for a large set of 
files.  It doesn't use heat or tallow, it creates everything itself.  The start 
of the file is 
always the same, as is the end.  It's only the XML under the top directory that 
ever changes.  The 
script traverses a directory and create either a new directory element, or a 
new component with a 
file element, depending on what it finds.  One of the parameters to the script 
is a file containing 
a list of file paths and GUIDs.  When a file is found whilst traversing the 
directory, the script 
checks the list of known files for an existing GUID.  If it exists it uses that 
GUID, otherwise it 
creates a new GUID and creates a new entry for the file.  Obviously the 
file->GUID list is quite 
important, so this is kept in source control.  As a backup we have 
RemoveExistingProducts scheduled 
early in the install sequence.  I have also rammed home many times that if they 
get the file->GUID 
stuff wrong they're going to screw the install.  No, I can't fix it, you'll 
have to ask the user to 
manually uninstall the old version first.

Rob

Dyson, Peter wrote:
>  
> After receiving emails from people on this subject asking about our
> process, I will reply to all publicly here.
> 
> Unfortunatly my employer 'owns' the code, getting OS in the door is hard
> enough, getting it out is not an option I am afraid.
> 
> However for those interested the general methodology used is as follows.
> 
> Each file has an XML file which describes it, how it gets installed and
> any required params which cannot be auto harvested. It also lists what
> products this file gets used by ( we have a lot of code sharing among
> products).
> 
> This file is then read and generates wix source files for each product
> using transforms and xpath. This pass also tell the products what
> components they have. The component files are then built, tranforms are
> done to generate the features using the information from pass 1 and then
> the final generation of msms and then msis.
> 
> This process currently manages our msi generation for 20+ installation
> products from 240ish components built from source and a few hundred
> ancillary files.
> 
> It removes most of the tedium and mistakes made, but is still fully
> extensible by careful use of include files.
> 
> It's not quite the nirvana of fully automated code generation but it
> does remove the tedium and potential mistakes from changing one
> component which is used in all products.
> 
> 
> 
> -------------------------------------------------------------------------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to