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