We do something similar to this with a tool based on mallow, this is in
turn based on tallow but it has one big advantage, it maintains the
guids for files already added to the output wxs files.

A quick Google should locate the mallow source if you are interested.

Neil
 
Neil Sleightholm
X2 Systems Limited
[EMAIL PROTECTED]


-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Anthony
Wieser
Sent: 21 May 2007 20:46
To: wix-users@lists.sourceforge.net
Subject: Re: [WiX-users] Using heat.exe as part of an automated build
process

I've just built a similar tool today, to help me copy a set of sample
files 
to the installation, because I never want to do that by hand, and heat's

output was just too messy for my liking.

What I've done is taken all of the files in a tree, and created a
component 
for each file, with a unique GUID, automatically generated.  In
addition, 
the files are relative to a folder elsewhere.

The file looks more or less like this:
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi";>
<?define SampDir="C:\projects\business\artgallery\sample_src\"?>
<?define SampDiskId="1"?>
<?define SampParentDir=INSTALLLOCATION?>
<Fragment>
<DirectoryRef Id="$(var.SampParentDir)">
<Directory Id="D0" Name="sample">
<!-- more directories nest here, containing file/component groups as 
below-->
<Component Id="C00" Guid="81f9ff04-e26a-45e6-ba24-6cd1466b4f3f">
<File Id="F00" Name="404.htm" KeyPath="yes" 
Source="$(var.SampDir)\sample\templates\404.htm"
DiskId="$(var.SampDiskId)" 
/>
</Component>
<!-- lots more components go here for each file in the folder-->
</Directory>
</DirectoryRef>

<ComponentGroup Id="CGSamp">
<ComponentRef Id="C0000" />
</ComponentGroup>
</Fragment>
</Wix>
As you can see, I've marked each of the files as KeyPath="yes" and also 
automatically generated ID's for each file, component and folder.
Then I've wrapped the whole lot up inside a fragment, which also
contains a 
component group, so I can link the whole file into my build, and then
just 
add a simple Feature that uses a ComponentGroupRef.

My intention was to build this as the initial listing of all of the
files in 
my folder, and then manually add any additions, but your post made me 
question whether that was necessary.

Is there a downside of just redoing all of the GUID's each time I do an 
update, apart from installation speed?

Anthony Wieser
Wieser Software ltd

-------------------------------------------------------------------------
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