What I'm doing in a situation much like that is using an interpreted
language to generate my .wxs files... That way, I have control over how
the GUID's are generated.  

I have to admit I use Perl to do it, but you could do it in another
language, as long as it can generate type 4 GUIDs (the ones in a
specific namespace)

Here's first-pass Perl code to do it, because it's what :
(This code just prints the component and file tags to standard output,
so it could be redirected into a file. It assumes there are no
subdirectories.  If so, I'd put the directory reading code into a
subroutine and recurse as you find subdirectories.)

#!perl

use 5.006;
use strict;
use warnings; 
use Data::UUID qw();
use IO::Dir qw();
use File::Spec::Functions qw( catfile );

my $download_site = 'http://www.site.invalid/my-program/';
my $dir_to_read = 'C:\\my\\build\\site';
my $guidgen = Data::UUID->new();

# Generate my own namespace to use for the rest of my GUIDs.
my $ns = $guidgen->create_from_name( Data::UUID::NameSpace_URL,
$download_site );

my $dir = IO:::Dir->new($dir_to_read);
if ( !defined $dir ) {
        die("Error reading directory $dir_to_read: $!");
}

print <<'EOF';
<?xml version='1.0' encoding='windows-1252'?>
<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>
  <Fragment Id='Fr_Directory'>
    <DirectoryRef Id='D_DirectoryId'>
EOF


my ($id, $guid, $filename);

my $file = $dir_object->read();

while ( defined $file ) {
    if ( ( $file ne q{.} ) and ( $file ne q{..} ) ) {
        $filename = catfile( $dir, $file );
        $guid = uc $guidgen->create_from_name_string($ns, $filename);
        $id = $guid;
        $id =~ s/-/_/g; # To change dashes into underlines for the ID.

        print <<"EOF";
      <Component Id='C_$id' Guid='$guid'>
        <File Id='F_$id' Source='$filename' />
      </Component>
EOF
        } 

        # Next one, please?
        $file = $dir_object->read();
}

print <<'EOF';
    </DirectoryRef>
  </Fragment>
</Wix>
EOF

exit 0;

--
Curtis Jewell
swords...@csjewell.fastmail.us

%DCL-E-MEM-BAD, bad memory
-VMS-F-PDGERS, pudding between the ears

[I use PC-Alpine, which deliberately does not display colors and
pictures in HTML mail]

On Wed, 25 Feb 2009 11:15 -0800, "Tabmow" <tabmo...@gmail.com> wrote:
> 
> Hi all,
>    I'm new to wix, and have looked at the tutorial at tramonta and
>    searched
> around various places, but the answer to this isn't immediately obvious
> to
> me, so I was hoping someone could help shed some light on it. 
> 
> Our installer will be installing 3 large directories.  Two of them are
> completely static 3rd party stuff that will not change at all for the
> release.   However, the third directory is our main product build output,
> so
> that changes weekly.   My question is:  how do people deal with
> situations
> like this?   I've looked at tallow & paraffin, and looks like I can use
> them
> (paraffin looks very nice) to build up my lists for inclusion in wxs file
> which will work perfect for 2 of the 3 directories & files.   However,
> the
> third directory will change every week and there could be new files,
> files
> deleted, new directories, etc.   Since all the stuff on tallow/paraffin i
> could see does not recommend re-running them on every build (so as not to
> have all new GUIDs and break component rules), I could run paraffin once
> and
> then every other build of my installer i could just do a paraffin
> -update...
> But then if new files get added one week, the next week -update would
> give
> them a different GUID unless I had some way of knowing when the new files
> were changed and to save that change.   Asking designers to inform us of
> file additions/removals is not feasible - ~100 designers. 
> 
> So for that one directory that *could* change frequently, I could just
> store
> it as a zip file (this is what gets created by as a build artifact
> anyway)
> in the MSI and unzip it, couldn't I?   Although lots of responses towards
> people asking questions about using Wix to handle zip files are very
> negative towards using zip files... so how are people handling situations
> like this?  I would have assumed this was a common problem? 
> 
> I hope my point/question makes some sense.   I would appreciate any
> help/suggestions/comments anyone has. 
> 
> Thanks!
--
Curtis Jewell
swords...@csjewell.fastmail.us

%DCL-E-MEM-BAD, bad memory
-VMS-F-PDGERS, pudding between the ears

[I use PC-Alpine, which deliberately does not display colors and pictures in 
HTML mail]


------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to