Back when we were designing the <Patch> feature, we had a discussion about
supporting taking all changes (like patchwiz.dll does). It was decided that
a patch with no patch families would do that. Turns out, though, when your
patch has *added* files this fails because we don't make sure the file
sequences in the primary authoring transform are sequenced after the last
File.Sequence in the baseline MSI. This works fine when you have at least
one patch family because that triggers the MSI 3.0 feature that
automatically sequences patched files (the Media.Id still needs to be
higher, though, like with <= MSI v2.0).
If you have no patch families authored, we don't add the MsiPatchSequence
table and so the MSI v2 code path is followed which causes this scenario to
fail because files are not properly sequenced. While the patch (#) transform
is correct for all files, the authored transform has sequence 1 for all
those added files. Modified files don't track a change in that field which
is why those work correctly.
So I propose one of the ideas we had back in that original discussion. You
can author a patch family and use the <All/> element as the child to pick up
all changes (handy if you still build your upgrade MSIs like you / your
system might for patchwiz.dll-style patching but with the <Patch> element /
pyro). Unfortunately, it's not enough to just EnsureTable for the
MsiPatchSequence table because it requires an entry and, since an entry is
required, it makes sense that we allow people to author it.
So authoring would look something like this:
<PatchFamily Id="ALL" Sequence="1.2.3.4" Supersede="no">
<All/>
</PatchFamily>
I'd allow <All/> in multiple because it really won't matter (and you can
have the same *Ref in multiple patch families today, though conceptually it
should be avoided because of its downstream impact to future non-cumulative
changes).
The other almost-option is to fix the file sequencing (doesn't appear to be
that hard), but without an MsiPatchSequence table other MSI 3.0-based
features may not trigger correctly and we may just not have seen it.
What do others think about how this should be authored?
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. ON SALE this month only -- learn more at:
http://p.sf.net/sfu/learnnow-d2d
_______________________________________________
WiX-devs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-devs