cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Patrick_Simons
Level 5

RemoveRegistry & Val0009

    Why is InstallShield not so intelligent to automatically populate the RemoveRegistry table (minor upgrade)?

    When I insert records in the RemoveRegistry table, the warnings (warning Val0009: A registry entry has been removed from the component 'MyPrint'. This key must be added to the RemoveRegistry table, otherwise it will be orphaned by an upgrade. '0|interface\{02004c41-4a8f-49cf-ace2-187e27ff7b10}\proxystubclsid32|') stills remain after building a minor upgrade.

    Example: RemoveRegistry, 0, interface\{02004c41-4a8f-49cf-ace2-187e27ff7b10}, -, MyPrint



Any ideas reaaallllly appreciated.
Labels (1)
0 Kudos
(7) Replies
Patrick_Simons
Level 5

Somebody out there....?

There should be at least one guru who could answer my questions?
0 Kudos
Not applicable

I would say that the table in question is not automatically populated because it's likely COM data that you might not actually want to remove.

However, did you follow the instructions in the below KB article about authoring that entry?

http://knowledge.macrovision.com/selfservice/microsites/search.do?cmd=displayKC&docType=kc&externalId=Q108846&sliceId=1&docTypeID=DT_ERRDOC_1_1&dialogID=8070488&stateId=0

Specifically, it doesn't look like you included the '-' sign in your entry.
0 Kudos
Patrick_Simons
Level 5

bryanwolf wrote:
I would say that the table in question is not automatically populated because it's likely COM data that you might not actually want to remove.

A minor upgrade refers to an upgrade item which is the orginal msi-file. So Installshield knowns the componentes which will change and also the registry-information to update. At least there should be somewhere a checkbox to autofill the RemoveRegistry table. I don't have the time to insert 300 lines in this table.


However, did you follow the instructions in the below KB article about authoring that entry?

http://knowledge.macrovision.com/selfservice/microsites/search.do?cmd=displayKC&docType=kc&externalId=Q108846&sliceId=1&docTypeID=DT_ERRDOC_1_1&dialogID=8070488&stateId=0

Specifically, it doesn't look like you included the '-' sign in your entry.


Yes I already read this page, without success. Before inserting 300 lines, it should at least work with one single entry. Is my "syntax" correct for my entry (I inserted the '-', see attachment.
0 Kudos
Patrick_Simons
Level 5

Still waiting for the guru-answer.....
0 Kudos
Not applicable

A minor upgrade refers to an upgrade item which is the orginal msi-file. So Installshield knowns the componentes which will change and also the registry-information to update. At least there should be somewhere a checkbox to autofill the RemoveRegistry table. I don't have the time to insert 300 lines in this table.


A checkbox makes sense, but the overarching point is that we don't know whether you want that information removed or not. Removing COM data from the machine without some kind of confirmation or agreement from the developer could cause a lot of issues.

Your entry looks good to me from what I can tell. I would say that the Val0009 is likely just too specific.
0 Kudos
Hendrik_Falepin
Level 2

Have exactly the same problem. I'm tying to build a minor upgrade with a COM object that has changed. I get the above error and can't get Installshield to remove the registry entries.

If I apply my patch, my COM object is not properly registered and makes my application crash.

I tried with a few manual RemoveRegistry entries an noticed that it only works on 6 of the 62. Can't see any logic why some are and others aren't removed.

I like the checkbox idea as well. Additionally it could be handy if entries in the Registry table could be quickly copied to the RemoveRegistry table.

Problem not solved yet, any help is welcome.
0 Kudos
Patrick_Simons
Level 5

As we are working with VB & VC++ ActiveX-DLLs, people have the possibility in VB6 to set the compatibility to "Project compatibility", "Binary compatibility" or "No compatibility". I made some tests and find out that there are always changes to the registry (CLSID, IID or LIBID). As the DLL's changes sometimes, the work to fill out the RemoveRegistry-table is quite too huge.

So I decided to clear the "COM Extract at build"-option on all DLL-components and checked the "Self Register"-option on components file level.

Works fine.
0 Kudos