Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

Already on GitHub? Sign in to your account

Patch applicability does not check all installed product for non-specific patches #4366

wixbot opened this Issue Mar 28, 2014 · 3 comments


None yet
2 participants

wixbot commented Mar 28, 2014

The original optimization in patch applicability in mspengine.cpp was to only check all installed products if even 1 patch does not target a specific ProductCode. If all patches target a specific ProductCode, we only check that list.

However, Burn determines which to do based on whether or not any TargetProductCode elements are in the manifest regardless of whether any of the patches are non-specific.

Rather than having Burn check whether any MsiPatch/TargetProduct/TargetProductCode elements are non-specific via XPath, we should do that in the binder. The actual error is in ChainPackageInfo.cs where we check that element. If found, the assumption is that the patch targets a specific ProductCode. however, you also need to check if the Validate attribute is "true" (or maybe there's multiple versions of the XML blob where either is possible, in which case check the latter first then the former). The same assumption is there for the UpgradeCode as well. All the child elements of MsiPatch/TargetProduct have that schema, FWIW.

Originally opened by heaths


wixbot commented Apr 3, 2014

Area changed from linker to burn
Release changed from v3.8 to v3.x


wixbot commented Jun 14, 2014

Originally changed by heaths
AssignedTo set to heaths


wixbot commented Jun 15, 2014

Originally changed by heaths
Resolution set to fixed
Status changed from Open to Resolved

@wixbot wixbot added bug burn labels Dec 20, 2015

@wixbot wixbot added this to the v3.x milestone Dec 20, 2015

@wixbot wixbot closed this Dec 20, 2015

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment