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