Add distinct components under the folders below, then reference both components 
in a feature. On that case you have to link in a.wixlib and b.wixlib which 
links in both fragments and you do have a dup symbol ref. Your last statement 
is correct since you can’t (easily) link to both directories directly, but to 
components as children you can. This isn’t a problem in swix only because 
directories are fragmented automatically by themselves.

 

So I think allow sections to be merged and throw any dup symbol errors as 
needed (like if the same property was defined) but otherwise merge. It’s not a 
breaking change, though I agree it’s different. But there is precedent in other 
toolsets. Another option is to run the differ on the section only when there’s 
a dup directory symbol. For large products it will have an impact to build 
time, though.



- Heath from Windows Surface RT


From: Rob Mensching
Sent: ‎January‎ ‎16‎, ‎2013 ‎7‎:‎31‎ ‎PM
To: Heath Stewart
CC: Windows Installer XML toolset developer mailing list
Subject: Re: [WiX-devs] Merging directories at link time



Inline.



On Wed, Jan 16, 2013 at 3:59 PM, Heath Stewart <hea...@outlook.com> wrote:




Re: If I read your last sentence correctly, I'm actually suggesting the exact 
opposite. I'm suggesting that these not create problems because no folders here 
have been defined with an explicit id. 

 

But the ID generation is durable, such that “Foo” in both cases is something 
like Foo_InstallFolder_hash, so when you link a.wixlib and b.wixlib together 
you get a duplicate symbol error. That’s why I’m recommending the merge 
strategy that is akin to C# partial classes.

But it seems from your last inline statement you’re in agreement, correct? 

 


For anonymous id's, I agree.
 
 




So the only open issue I see is what you brought up before, that if in twix two 
fragments that define the same directory but have different other content (like 
below), we should, what, fail or take them? I’m recommending linking them in. 
The C/C++ linker does this though it’s not touted as a feature.


 

<Fragment>

                <Property Id=”A” …/>

                <Directory Name=”Foo” …/>


 

<Fragment>

                <Property Id=”B” …/>

                <Directory Name=”Foo” …/>

 

As it stands today, linking those would throw the duplicate symbol error. So no 
one could be accidentally doing that today. With the change I’m recommending, 
new authoring would make it possible but 1) this isn’t possible in swix, and 2) 
it’s doubtful anyone would do this in twix and, if merging directories is 
documented (as I plan), then they got what they asked for.




In that case, you can't get into the problem I am concerned about. You can't 
create a DirectoryRef to the Directories (because they are anonymous) so the 
only way to get both Fragments is to have two PropertyRef elements (one for "A" 
and one for "B").

 

These scenarios are all good and do not touch on what I believe should be error 
cases.
------------------------------------------------------------------------------
Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
MVPs and experts. ON SALE this month only -- learn more at:
http://p.sf.net/sfu/learnmore_122712
_______________________________________________
WiX-devs mailing list
WiX-devs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-devs

Reply via email to