In an effort to support linking multiple simplified wix (swix) wixlibs to a
tradition wix (twix) product package, there was a request for anonymous
identifiers but apart from the conundrum of referring a symbol at link time
that doesn't yet exists (and wouldn't until all information is available
late in binding) I don't think it's actually necessary.
The impetus is to support swix's directory syntax for
<DirectoryRef>:(\<Directory>(\<Directory>)) and have like-directories (say,
root:\a and root:\a\b) merge to the same directory identifier. Currently in
swix, the MSI identifiers are generated from the IdTypeConverter in the
backend compiler similar to how delay-resolved fields work in twix. But swix
uses a hierarchical model that is different from twix which passes through
XML nodes to Parse*Element() method and those can create WixSimpleReference
rows that merely specify the target table name and primary key (typical the
sole ID field for that table). Changing that is a big departure for twix and
would only work in a handful of cases (basically, for directories,
components, and component resources) and for anything referenced in a
Formattable field would still require a specified ID.
But if the only requirement is that directories are merged, it seems to be -
until the pattern in swix is used for twix, if ever - are smaller-scope
change to resolve the directories (as twix does not, but I can store the
result in a table such as WixDirectory to save time later) and ignore any
duplicate symbols that resolve to the same path.
In the example above with root:\a and root:\a\b, a would end up with the
same stable identifier. We'll assume "root" is defined in twix since in swix
it's still a DirectoryRef. As we link "a" the first time, nothing changes.
But when we try to link "a" the second time we see they refer to the same
target (install) directory so we don't raise a DuplicateSymbol error and
just ignore it. "b" already has a ref to the ID for "a" as would any
Formattable column types.
Does anyone see any problems with this approach?
Heath Stewart
VS Pro Deployment Experience, Microsoft
<http://blogs.msdn.com/heaths> http://blogs.msdn.com/heaths
------------------------------------------------------------------------------
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. SALE $99.99 this month only -- learn more at:
http://p.sf.net/sfu/learnmore_122412
_______________________________________________
WiX-devs mailing list
WiX-devs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-devs