Jump to content


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.
Photo

Patch is not applied


6 replies to this topic

Rimantas Varanavicius

Rimantas Varanavicius
  • Members
  • 13 posts

Posted 15 December 2003 - 17:32

Hi,

I have a problem: patch is not applied, however no error messages displayed.
Progress of installation goes very fast, that is - patching is finished in
about 5 seconds, instead of a few minutes as it used to be.
Don't know where to start from looking for a problem...
Any help would be greatly appretiated.
I'm attaching the verbose log file. Could somebody give me any hint how to
parse it or where to start from?
Thanks

Rimantas

Attached Files



Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 16 December 2003 - 12:40

You broke the upgrade rules:

QUOTE
MSI © (74:C0): SELMGR: ComponentId '{09A27A3A-C8C6-6394-12A4-CF563A2A0B62}' is registered to feature 'DefaultFeature', but is not present in the Component table.  Removal of components from a feature is not supported!
MSI © (74:C0): SELMGR: Removal of a component from a feature is not supported


As a result MSI gets confused about whether your features are actually installed:

QUOTE
MSI (s) (90:D4): Feature: DefaultFeature; Installed: Advertise;  Request: Reinstall;  Action: Reinstall


It thinks the feature is advertised, not installed locally. Reinstalling (updating) an advertised feature does not replace any files.

Rimantas Varanavicius

Rimantas Varanavicius
  • Members
  • 13 posts

Posted 17 December 2003 - 11:28

Thanks, you've just confirmed my suspicions.

So the situation that I have now is:
1. The *.msi file was created using VS.NET web setup project
2. Libraries comdlg32.dll, crypt32.dll, netapi32.dll, oleacc.dll and rpcrt4.dll were automatically added to setup project as detected dependancies after adding primary output of some other solution's project.
3. After deploying our product on some of our client machines, we've found out, that in some cases the system libraries, mentioned above, are conflicting with current client machine's OS libraries.
4. Then we set Exclude property to 'true' for those libraries in the Properties page. This resulted in those libraries being excluded from the install image.
5. So now we have few versions of the product install images with the system libraries not excluded and a few with excluded. Other differences between those versions are minor - that is - it would be enough to replace some files with their newer versions. No matter what version of the product is installed on clients machine we need to be able to update the product.

The problem now is that on some of our clients machines product is installed from installation images with system dlls not excluded and these installations can not be patched, as the newest product version's installation image has those system dlls excluded.
So the question is - Would it be possible to manually rewrite particular registry entries and replace the cached msi file on the client machines (with older installations) in order to be able to use regular patch for updates?

Thank you.

Rimantas

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 17 December 2003 - 13:45

The best solution would be a "major upgrade", i.e. change the ProductCode.

Rimantas Varanavicius

Rimantas Varanavicius
  • Members
  • 13 posts

Posted 17 December 2003 - 19:48

Hello, Stefan,

OK, but what about using transient components to do this as I was suggested in another news group: set a condition to the component that is always false and set reevaluate condition for the component.

I tried to do that. So when I try to install the product using newest
installation image, the component is omitted now. However the
patch is not applied correctly. I'm getting the same error message in log file: "Removal of components from a feature is not supported!"

So is this solution valid?

Thank you.

Rimantas



Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 18 December 2003 - 08:21

That would have been a solution that you could have used instead of removing the components. But as I understand you already have shipped packages with removed components, so it's too late.

In addition, you can't put conditions on components that are included in merge modules.

I don't exactly understand what the problem with the merge modules was, however. So I'm not sue that you really had to remove them.

Rimantas Varanavicius

Rimantas Varanavicius
  • Members
  • 13 posts

Posted 18 December 2003 - 14:50

Well so far I've expirienced that if new components are added to the feature this does no harm to patching process. The older product is successfully updated to the newer version (containing the new components).

I'm trying to figure out some other thing now.
I've noticed that in newest build ComponentId for the file that had property Exclude set to "true", and then back to "false" have changed... And now while applying the patch I get same kind of an error : "component removed and this is not supported" But this time I think it's because the ComponentId value for the component have changed (in table Component).

I did not do that (at least intentionally). I'm using VS.NET web application setup project to build my msi files. Why it decided to change the ComponentId value (GUID)?
ComponentId values of other components stay the same for 48 different builds of the setup project. This means I guess, that those ComponentId values are stored somewhere, aren't they?
I tried looking for those ComponentId GUID values in setup project file, opened with Notepad, but could not find it. So how VS.NET setup project manages to preserve ComponentId values the same throughout the different build versions?

Any ideas?
Thank you.

Rimantas