Hi All,
Is it possible to add component forcefully in .msp patch.
I create patch by updating PatchTemplate.pcp with the TargetImage msi path and UpgradedImage msi path.
I added a new component in UpgradedImage and that was not in TargetImage and i verified it with MSIPackageDiff. But still the component was not part of the .msp patch.
The entire release scenario is as follows
- Product initial release has product version as 7.0.0.0
- Released a patch for the product with version 7.0.10000.0, in which ComponentA was newly added.
- The next minor upgrade version was 7.0.10500.0, to generate this i use 7.0.0.0 msi as TargetImage and 7.0.10500.0 msi as UpgradedImage which has the ComponentA along with other new components.
Release 7.0.10500.0 was cumulative. User can either apply this minor upgrade over 7.0.0.0 or over 7.0.10500.0.
When this minor upgrade was applied over 7.0.0.0, ComponentA files are not getting copied, but still the FeatureA to which ComponentA belongs was in Installed_Local state.
But when the minor upgrade was applied over 7.0.10000.0, ComponentA files are not copied and also FeatureA state goes to Advertised and in verbose log i find the following
MSI (s) (94:A4) [14:50:31:218]: SELMGR: ComponentId '{30F1E58A-12ED-4CA2-B572-AC6AE234A8A0}' is registered to feature 'FeatureA', but is not present in the Component table. Removal of components from a feature is not supported!
MSI (s) (94:A4) [14:50:31:218]: SELMGR: Removal of a component from a feature is not supported
I think because of this, the FeatureA goes to Advertised state.
If the component was not in TargetImage and present in UpgradedImage, it should be available in patch generated, correct me if my statement was wrong.
And if 7.0.10000.0 was already applied, ComponentA will be added to the cached msi, so it might expect the next minor upgrade to hold the ComponentA, but here i am not sure, why the ComponentA was missing in the 7.0.10500.0 msp.
Is there any way a component can be forcefully included in the patch, so that it can be installed always.
Any help will be greatly appreciated.
Thanks,
Vishnu
This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.

Forcefully include component in patch
Started by
vishnub
, Aug 15 2008 04:10
3 replies to this topic
Posted 15 August 2008 - 10:18
Is 30F1E58A-12ED-4CA2-B572-AC6AE234A8A0 the GUID of ComponentA in both version 7.0.10000.0 and 7.0.10500.0 ? Or did the GUID change in 7.0.10500.0 ?
Stefan Krüger
InstallSite.org twitter facebook
Posted 15 August 2008 - 18:54
Yes Stefan, i verified the component GUID, it remains same in 7.0.10000.0 & 7.0.10500.0.
One more observation:
I opened the 7.0.00000.0 MSI with Orca and view the 7.0.10500.0 MSP patch.
I can see ComponentA entry in the File table for a file newly added to the component in 7.0.10500.0, but nowhere else it was referenced, not in Components table and not in FeatureComponents table.
When i open the 7.0.10500.0 msi, i can see the ComponentA entry in Component, File, FeatureComponent, ISComponentExtended tables, but it was not created in the patch. Hence the failure.
Since the ComponentA entries are in these tables in ism, i no need to add it again, but how can i force it to be created in Patch too.
Please suggest.
Thanks,
Vishnu
One more observation:
I opened the 7.0.00000.0 MSI with Orca and view the 7.0.10500.0 MSP patch.
I can see ComponentA entry in the File table for a file newly added to the component in 7.0.10500.0, but nowhere else it was referenced, not in Components table and not in FeatureComponents table.
When i open the 7.0.10500.0 msi, i can see the ComponentA entry in Component, File, FeatureComponent, ISComponentExtended tables, but it was not created in the patch. Hence the failure.
Since the ComponentA entries are in these tables in ism, i no need to add it again, but how can i force it to be created in Patch too.
Please suggest.
Thanks,
Vishnu
Posted 17 August 2008 - 18:42
So it looks like your second patch is created as difference between versions 7.0.10500.0 and 7.0.10000.0, instead of 7.0.10000.0
Stefan Krüger
InstallSite.org twitter facebook