View Full Version : Component Transfer Error !!

10-12-2003, 06:13 AM
I am using my installer to install VC++ application files in local machine and MS Access database(s) in a remote machine's shared folder. Shared folders are also created by my Install shield only.

It installs fine and my MFC application too works, but while I uninstall the application using uninstaller, I am getting the following error.

Message box with title : "Component Transfer Error"
Message : "Error: 1"

I can see this error, while uninstaller tries to remove some of the shared folders created in the remote machine during installation. If I try installig and uninstalling in my local machine itself, everything goes smoothly (installer and uninstaller).

Why am I getting this error ? If I need to suppress/remove this error messge during uninstallation, what do i do ?

Any help'd be appreciated.


10-14-2003, 09:36 AM
The problem seems to be because of registry entries created on the remote installation. Please see the setup.ilg for registry entry, there are three fields next to it saying something like false, false,false.

The 3 fields are 'Created', 'Remote' and 'Shared'.

The value “True” is set in 'Created' if the setup has originally created that key.

The value “True” in the 'Remote' column indicates that the key it is pointing to is a Remote Registry on which this setup has written to.

And the value “True” under the column 'Shared' indicates that this registry key is also being used by some other application and if this key is removed, the other application might not work well.

Therefore, before creating a new key in the registry, it is always recommended to check in the registry if the key with the same name exists or not.

If the key exists, then you can decide if to create your key as a sub key to that key or as a different key. This will also make sure that your key will always be deleted if you have logged it during the setup installation.

With RegDBCreateKeyEx function, if you have created the key hierarchy like: “key1\key2\key3”, then only the key3 is logged for uninstallation. key1 and key2 might not be uninstalled when the setup is uninstalled.

In this case, it is preferred to first create a parent key (Key1) with RegDBCreateKeyEx function and then create the child keys with a single command. In this way, the parent key is logged for un-installation and the child keys are also deleted when the setup is uninstalled.

If your registry entries are not being deleted, make sure that you have Logging enabled whenever you are creating new registry keys.

As far as the order of component is concerned, you can specify the function (containing a simple MessageBox function) in the OnUnInstalling property of those components and see which component is called first during the uninstallation.

Hope this will help addressing your issue.