In a verbose log Windows Installer 3.1+ will add a line line "SELMGR: A component *foo* is registered to feature *bar*, but was removed from the feature.", followed immediately by something like "SELMGR: Removal of components from a feature is not supported." But this will not fail the patch. Instead it will advertise the feature and the content of that feature will never be repaired again. See http://blogs.msdn.com/heaths/archive/2006/01/23/516457.aspx for more information.
MSIENFORCEUPGRADECOMPONENTRULES merely turns that into an error, so instead of silently breaking the product the property (and the corresponding machine policy) will fail the install. So a small update or minor upgrade patch will apply if you break this component violation, but the feature will forever be broken until explicitly added back into the local state. See http://blogs.msdn.com/heaths/archive/2009/01/27/repairing-products-after-patches-advertised-features.aspxfor some suggestions of how to do that. On Wed, Aug 6, 2008 at 1:33 AM, Tony Juricic <tjuri...@tradestation.com>wrote: > It just goes to show how easy it is to commit gross component rules > violations even after months of reading articles and blogs on component > rules! > > However, it seems that I have also misunderstood the purpose of > MSIENFORCEUPGRADECOMPONENTRULES property. I was under the impression > that it would add to verbose log. I mean, if MSI *knows* that there is > component violation, it would be of great help if it could add a > sentence to the log saying at least something along the lines of: > There is component rules violation of some sort! > > After reading all that I could find on MSIENFORCEUPGRADECOMPONENTRULES > property I can't say that I am 100% sure about what is it that it really > does? How can the consequences of having this property defined or not be > seen on some practical example? I was certainly none the wiser in this > specific case since verbose logs were identical with or without it, for > all that I could see. > > It *seems* that a small update patch may be applied by MSI in some cases > even if there was a component rule violation and this property prevents > it. > > -----Original Message----- > From: Bob Arnson [mailto:b...@joyofsetup.com] > Sent: Saturday, August 02, 2008 1:10 PM > To: General discussion for Windows Installer XML toolset. > Subject: Re: [WiX-users] Does Pyro (or Torch) ignore 4-th version > number? > > Tony Juricic wrote: > > but reading the install.log I cannot find anything a bit more explicit > > about this violation. It is certainly not saying something like "you > > changed the name of your root installation folder and you shouldn't" > :) > > > > Sorry, it's not that polite.<g> The "Windows Installer Components" topic > > summarizes the magic of component rules with two bullets: > > In brief, these rules are: > > * Each component must be stored in a single folder. > * No file, registry entry, shortcut, or other resources should > ever be shipped as a member of more than one component. This > applies across products, product versions, and companies. > > So changing the directory violates 50 percent of the component rules.<g> > > -- > sig://boB > http://joyofsetup.com/ > > > > ------------------------------------------------------------------------- > This SF.Net email is sponsored by the Moblin Your Move Developer's > challenge > Build the coolest Linux based applications with Moblin SDK & win great > prizes > Grand prize is a trip for two to an Open Source event anywhere in the world > http://moblin-contest.org/redirect.php?banner_id=100&url=/ > _______________________________________________ > WiX-users mailing list > WiX-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wix-users > -- Heath Stewart Deployment Technologies Team, Microsoft http://blogs.msdn.com/heaths ------------------------------------------------------------------------------ _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users