Tamas
Posts: 4
Joined: Thu Mar 09, 2006 11:40 pm

DLL OCX Auto Registration Issue

When I add a DLL or OCX file to the package and select the Auto Register the file option and "Extract the Registration Info", it updates the registry with the "source" location of the file and not the "target" location, so when I run the application I get a "Run-Time Error 339, component not correctly registered".
ciprian
Posts: 259
Joined: Thu Jul 14, 2005 12:56 pm
Location: Craiova, Romania
Contact: Website

Hi,

When using the "Extract the Registration Info" all the necessary registry entries needed for registration are extracted and installed separately. You can see them in the "Registry" page of Advanced Installer.

When extracting the registry entries we replace some of the paths that contains the source location with ones from the target machine.
These are: the path of the registered file, the directory of the registered file

In your case there might be other paths that must be changed. In order to fix this problem you could manually modify the registry keys that contain the source paths that are still unchanged with ones from the target machine. You must use formatted values.

For more details on formatted values please see:
http://www.advancedinstaller.com/user-g ... atted.html

Also could you please tell us what paths are not modified, what do they mean for the DLL. This would be of great help to us in order to improve this type of registration.

Best regards,
Ciprian
Ciprian Burca
Advanced Installer Team
http://www.advancedinstaller.com
Tamas
Posts: 4
Joined: Thu Mar 09, 2006 11:40 pm

Interestingly enough, I got a different result when I tried to recreate the problem but I can give you an example:

Let's say I try to build a package and I have the source files in D:\Packages\Example. I added the "ssdw3bo.ocx" file to the package to be installed into C:\Windows\System32. When I used the "Extract Registration Info" it created the following registry:

<ROW Registry="__562" Root="0" Key="CLSID\{1109BE31-B462-11D1-AB76-0000C09400C4}\InprocServer32" Value="D:\Packages\Example\ssdw3bo.ocx" Component_="ssdw3bo.ocx"/>

When I deployed the MSI, it was looking for the OCX file in "D:\Packages\Example" folder and not in SYSTEM32.
I just tried it again after the posting and now I don't get the hard coded path:

<ROW Registry="__1" Root="0" Key="CLSID\{1109BE31-B462-11D1-AB76-0000C09400C4}\InprocServer32" Value="[#ssdw3bo.ocx]" Component_="InprocServer32"/>

So right now I'm not sure why it did not work correctly in the first place.
ciprian
Posts: 259
Joined: Thu Jul 14, 2005 12:56 pm
Location: Craiova, Romania
Contact: Website

Hi,

Glad to here that everything worked out.

However if you encounter again this problem please let us know. We are very careful to to investigate such matters.

Best regards,
Ciprian
Ciprian Burca
Advanced Installer Team
http://www.advancedinstaller.com

Return to “Common Problems”