View Full Version : COM Extract doesn't seem to work with VB6 dlls

06-03-2004, 09:41 AM
Com extract At build doesn't appear to be working.

Just wondered if anyone else out there had a similar problem to this.
I'm installing some ActiveX dlls and Exes written in VB6. Then using a VB6 app that I launch to install some of them into com+.

The install seems to finish OK, and the package is created. But none of the components are being put into COM+ and if you try and add them manually, then COM+ doesn't error and pretends to have put them into the package - but the package is still empty.

Now, before I get loads of emails telling me to use the COM+ view in installshield, this isn't the full problem. And I'm going to continue to build the com+ package using the exe, as it gives our customers an easy way of recreating the package if they need to - all they'd have to do is double click an exe.

The real point of this post is that if I change the properties on the dlls so that they do not use COM Extract At Build - and instead use the self-register flag (or I register them manually after the install completes), everything works. The package is populated fine, can also be populated by hand, and components can create their objects.

So it seems as though the windows installer method of registering files is incompatible with my VB6 dlls (and maybe my exe files too).

Anyone else noticed anything similar ?

10-22-2004, 03:13 PM
I realize yours is an old post, but I was curious to know if you had found out any additional information. I recently upgraded to IS X, and I think my problem is similar.

If I create my COM component using the Component Wizard w/Best Practices (and COM Extract at Build), none of the registry information shows up in the tables. But if I select "COM Server" and select the extract checkbox, all the registry info shows up just fine in the Component view.

I can do this either way with Developer 8 and I get the same results. Any idea what broke?

10-25-2004, 03:46 AM
I never looked for the registry information being present after using the component wizard with com extract at build. But I don't think it will be present until you've actually built your install. Then you can open it using orca and in theory you should see the info.
Selecting Com server (but without selecting the com extract at build) will extract the info straight away and you'll be able to see it immediately in the IDE, under 'Com Registration'.
Appologies if you already knew this.

My problem seemed to be that using any method other than the self-register flag meant that the dlls I had just wouldn't be registered properly. (it turned out that it was more than just not being able to add some of them into com+, others non com+ ones couldn't be used either).

I've never got to the bottom of it, and no one seems to be able to offer an answer. Maybe it's something to do with the DLLs I'm using having dependencies on other DLLs.

I'm not certain, but I think that my dlls would register OK with developer 8 too. Although I had a different problem with trying to create com+ packages through installshield.

At the moment my only choice is to stick to the old method of using the self register flag.

If you do manage to have some sucess with this let me know though.