0

We have MSI version 12.2.1.0 released and there were new components added in Fix 1 which is now released has 2 components with same GUID. We have identified issue in Fix2 as patch doesn't seem to overwrite/replace the files due to duplicate GUID for the components the feature which is referring the components is getting skipped while installing Fix2.

How to resolve the duplicate GUID issue in Fix2.We cannot go back to fix1 as it is been delivered to customer.

First component

How to safely remove the duplicate GUID to make patch install the feature without skipping.

Log shows Line 1042: MSI (c) (9C:7C) [11:47:25:815]: SELMGR: Component 'xyz_shortcut18' is registered to feature 'P', but is not present in the FeatureComponents table. Removal of components from a feature is not supported!

ICE warning : unfortunately got ignored while generating patch warning LGHT1137: Component/@Id='p19.arx' has a @Guid value '{36B8C853-9E9E-48D7-BDCD-E4D6C376B781}' that dupli cates another component in this package. This is not officially supported by Windows Installer but works as long as all components have mutually-exclusive conditions.

We are using wixout files to generate the transform Pure patch process.

Stein Åsmul
  • 39,960
  • 25
  • 91
  • 164
  • Please elaborate: how big is this application? Why are patches used? (as in can you use a full install instead as fix). There are [severe limitations](https://stackoverflow.com/a/51444047/129130) when it comes to what a minor upgrade patch can do ([Installshield Summary](https://helpnet.flexerasoftware.com/installshield24helplib/helplibrary/MajorMinorSmall.htm)). – Stein Åsmul May 18 '19 at 12:07
  • It's a big application having 1000s of components.. is there any option to correct the issue in the fix. I am not sure whether we can provide a full install or not. – user3432571 May 18 '19 at 14:29
  • Sort of not easy to answer this. Have you delivered successful patches in the past? It is very hard - and harder and harder the bigger the package is. One technique I use is to change the name of the file(s) involved and then change the component GUID. This breaks the link to the sins of the past, but for such a big package I think it would be futile. Do you register a lot of components per-machine? COM Servers, file associationes, etc? – Stein Åsmul May 18 '19 at 18:03
  • The feature with duplicate GUID component was disabled in the patch, when adding the component reference to another feature it seems to be working fine. modified GUID of the duplicate component looks to be working as far as now. – user3432571 May 20 '19 at 10:56

1 Answers1

3

To fix Component Rule violations you need to use a major upgrade that is scheduled very early (after InstallValidate). That will remove the "bad package" before installing the fixed package avoiding the Component Rule violations.

After that, then you can attempt more advanced upgrade/patching scenarios.

Rob Mensching
  • 33,834
  • 5
  • 90
  • 130
  • Thanks Rob for the suggestion. Somehow by moving the component references to another feature patch seems to be working fine. But am confused why the feature installation is getting skipped while installing patch but the feature level is set to 1. Please help to understand the scenario. – user3432571 May 20 '19 at 17:55
  • You are probably violating small update rules. Check out [MSIENFORCEUPGRADECOMPONENTRULES](http://robmensching.com/blog/posts/2007/1/4/doing-a-small-update-or-minor-upgrade-in-msi-use/). – Rob Mensching May 21 '19 at 04:33