[wix-users] Component in Fragment Ignored for Upgrades

Henri (ThinAir) henri at thinair.com
Thu Jul 7 14:59:04 PDT 2016


As part of my Installation package, I include a directory tree of files that
get installed wholesale as a sub-folder in the installation directory.  The
WXS for this tree is generated with Heat.  It works great for installing and
uninstalling, but upgrades are not working.  During upgrades, all my other
files/components are upgraded properly, but this Heat managed subtree is
ignored.

I thought it was because I had pointed the Keypath for the top-level
component to a file that doesn't change, so I added a trigger file that is
generated during the build, with date/time stamp, and the version of that
build, for good measure.  (I like those good measures.)  I made this file
the Keypath for the top-level component and also added Checksum="yes" to it.
This made no difference.

I set the MSIENFORCEUPGRADECOMPONENTRULES property, to see if it would
change anything.  I then got the 2771 error.  I thought this was interesting
for two reasons.  The first reason is that if the feature/component rules
are enforced not just for top-level components, but for all components in a
hierarchy, then that makes Heat incompatible with upgrades, since the
component IDs for the files are re-generated every time I run Heat.

The other reason I thought it was interesting is that it indicates the
installer engine wanted to do something with that component, even though it
ignores it otherwise.

I'm trying to play around with REINSTALLMODE to see if I can solve it that
way, but I would rather not resort to that.  The reason is that we also use
the VC redistributable merge modules, and my understanding is that a
REINSTALLMODE overriding the file update logic can trigger the VC msm's to
downgrade the user's installed CRT.

I'm open to any suggestions. 

Thanks,
  - Henri Hein




More information about the wix-users mailing list