Re: Register TLB



Thanks for your reply.

My problem stems from the fact that I am trying to use a new technology
component (created by .net) in an old technology language (legacy application
in vb6). Searching the web seemed to indicate that it was possible ( and
painful).

The .net DLL was created and compiled with the "COM visible" option, to
allow vb6 to use this .net component, when I reference its .TLB file.
Although the .DLL file appeared to be also registered, vb6 refused to
reference the .DLL file. I believe that there are some interoperability
issues with .net that does not wrap the DLL into a stand-alone COM object
that vb6 can handle. So, I am left with having to reference the .TLB file,
which does work for the development machine. From what I can gather, the .TLB
file is an alternative way of referencing a .DLL, without having to go
through registration procedures for the .DLL - I could be wrong here.

I think you are right that PackageDeploymentWizard can not work out that the
..TLB file is referencing the .DLL (your "walk the libary list" scenario), and
therefore did not include the .DLL in the set-up file. But I can not
reference the .DLL directly as vb6 refuses to allow it and just adding it to
the list does not solve the referencing issue as expected.

I did assume that the Dependency file for the .net component should be
generated by .net, as it would know how the object was put together. Then I
would have to let vb6's PDW know about the dependencies, so that it could
assembly the complete package. Am I too far off the mark?

Many Thanks
Jojo



"Ralph" wrote:


"Jojo" <Jojo@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote in message
news:68E12D29-25E5-4A0F-AA3F-6C6C2B8BC9F2@xxxxxxxxxxxxxxxx
I also have a similar problem, where I have created a VB.net .dll and
associatred .tlb files to be used by a vb6 application. I can reference
the
.tlb file in the vb6 application and all works well on the development
machine. But I get the error 429 on the deployed machines.

Looking at the set-up files, the .tlb file is self-registered, but I guess
the problem might in its inability to find the associated .dll file. The
..dll
file was originally missing from the set-up list and I have now included
it
into the apps directory. This should have been done automatically by the
PackageDeploymentWizard in vb6, if only it could understand the
dependencies
of the .tlb file.

There didn't seem an option for generating a dependency file in vb.net ,
nor
a way to inform vb6's PDW to make use of it. Any clues?

Is there a way of forcing PDW to incorporate the .dll in such a way as to
sort out this deployment problem on other machines ?

Many Thanks

Jojo

<snipped>

From VB6's view a typelib is only used by the development environment it
should never be distributed with a compiled application. When you create a
Dll in VB6 the typelib, for that Dll, is included within the Dll. You can do
the same in .net.

(Still not too clear what the problem is here. Are you attempting to include
dotNet components with in a P&D package?)

As for the P&D Wizard.
1) You can use it to create .def files for components.
P&D "Package Type" dialog.
(.def files are simple text file so you can also create your own. Locate
one or two on your development box and open it up.)
2) If there are .def files associated with your components P&D will pick
them up. If not then it makes a good guess...
3) The P&D Wizard will pick up immediate dependancy (as shown with dumpbin)
buts doesn't always "walk" the library list. (A.dll uses B.dll which uses
C.dll, ...). If you have such a component it is usually best to have the P&D
create a dependancy file and then check it for included components.
4) When using the P&D Wizard you are presented with the "Included Files"
files dialog. You should check this to make sure it picked up all the
components and add and remove as appropriate. Add other files here.

hth
-ralph



.



Relevant Pages