Hey Mike,

            Thanks for the reply.  Here is what I observed:

1)    You are right about compile time Vs link time.  The guids are generated 
at link time

2)    The GUID is pretty much stable (rather same) across all MSI where a 
fragment (locale independent) is used.  However, I still think that for 
performance reasons, the GUID getting generated at compile time is better.  
Don't know with whom I can discuss this and understand more why it is generated 
at link time if there is any genuine reason.  Derek, can you shed some light 
here? (Got your id from the below blog post)

3)    Yes you are right, in SxS story the directory path would generally change 
and the new GUIDs automatically generated than the old ones.

Thanks,
Laxmi

From: Mike Dimmick [mailto:[EMAIL PROTECTED]
Sent: Saturday, October 13, 2007 5:14 PM
To: Laxmi Narsimha Rao Oruganti (SQL CE); wix-users@lists.sourceforge.net
Cc: SQL Server CE Setup Team
Subject: RE: [WiX-users] Component Guids - Version Changes

The bit in Derek's article under Here's how it works explains how it works. It 
computes the full target path for the single file in the component (multiple 
files are not supported). It then generates the GUID as a hash of the full 
target path. That means that as long as you don't change the target path, the 
component GUID should be stable.

The GUIDs are generated at link time, by the binder. You can find this code in 
SetComponentGuids() in src\wix\Binder.cs. This is called by BindDatabase after 
localization variable substitution has occurred (in ResolveFields()). Any 
localized variables [i.e. !(loc.Name)] will be replaced before computing the 
hash and hence the GUID. You should consider carefully whether to include any 
of these in the path to an installed file for a generated GUID.

Service packs should generally write to the same location as the RTM release so 
the GUIDs should be stable and allow a patch to be built. In side-by-side 
environments for new major releases you would get new GUIDs as you would 
probably expect.

--
Mike Dimmick

________________________________
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Laxmi Narsimha 
Rao Oruganti (SQL CE)
Sent: 12 October 2007 08:00
To: wix-users@lists.sourceforge.net
Cc: SQL Server CE Setup Team
Subject: [WiX-users] Component Guids - Version Changes

Hey WIX Users,

            I am using WIXv3 3.0.2921 build.  And I am able to use automatic 
component guid generation as stated by Derek in:
            
http://installing.blogspot.com/2006/09/automatically-generating-component.html

            I also understand that this is a new feature in WIXv3 and may not 
be stable enough to use.

            I have the following questions regarding this:

1)    As component guids are generated for every build, if I just do a 
candle+light twice on my WIX code with just same binaries I get two different 
guids.  Am I right?

2)    When are these guids generated?  At compile time OR link time?  Candle 
time or light time?  Because, we have a fragment which is locale independent 
one and needs to carry the same GUID across all locale specific MSIs where this 
fragment is absorbed.  Hence, I am ok if it generates at compile/candle time.  
Can someone confirm?

3)    Can component guids change across service packs for the same binary?  
That is, to generate a patch I will have a RTM MSI and then SP1 MSI which I 
diff using MSP related tools to get a msp.  Since, RTM MSI and SP1 MSI have 
different GUIDs for same component (but same component id) how the MSP gets 
effected?


Thanks a lot.

Thanks,
Laxmi

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to