all groups > dotnet distributed apps > october 2006 >
You're in the

dotnet distributed apps

group:

How to reference a .Net component from a VB6 component located in COM+



How to reference a .Net component from a VB6 component located in COM+ epaetz
10/4/2006 1:25:52 PM
dotnet distributed apps: We're migrating our current VB6 components to .Net piece by piece.

I'm modifying an existing VB6 login component that sits in COM+. I'm
modifying it to call a .Net auth component, instead of the existing vb6
authcomponent (which is also in COM+).

To make matters a little more complex, the new .Net auth component is
going to call an existing VB6 utility component in order to complete
it's authentication work before it returns the results back to the
calling VB6 login component.

Got it so far?

My issue is with deployment. Everything works fine on my dev machine.

However when I manually deploy the above pieces I have have the
following two issues.

First - The VB6 login component in COM+ cannot see the .net component.
I get 'automation error . the system cannot find the file specified. If
I take the vb6 login component out of COM+ and register it normally,
then everything works fine. If I return it back to COM+, then I get the
same automation error.

Second - With the VB6 login component in COM+, if I drag the .Net
component into the GAC (manually) and I shutdown the package of the VB6
login component (to clear out anything in memory) everything works
fine. Except that the initial call from the vb6 component to the .net
referenced component takes about 10 seconds. All subsequent calls take
about 1 second. If I shutdown the COM+ package, the initial call again
takes about 10 seconds.

Two questions
1. What's the best way to deploy my .net component so that the
referencing VB6 component in COM+ can access it? Put it in the GAC, or
place it in a folder? If in a folder, how do I get the VB6 component in
COM+ to see it? Remember that if I take the vb6 component out of com+
and register it manually, it works fine. It's only an issue when it's
in COM+ which is kind of where I'd like to keep it do to previous
installation.

2. Why is the initial call from my VB6 component in COM+ to the
referenced .Net component in the GAC taking so long? Is it due to my
dragging it into c:\windows\assembly instead of installing it properly?
What's the proper way to install a component into the GAC on a
production box that has only Framework 2.0? I don't see gacutil.exe in
v2.0.50727.

Thanks,
Eric
RE: How to reference a .Net component from a VB6 component located in Prabakar Samiyappan
10/19/2006 4:45:02 AM
Proper way to Install the Component in GAC.

1. Create the Strong name by using sn.exe tool.
2.Specify the Path of the .snk file like this

<Assembly: AssemblyKeyFile(@"C:\Strongname.snk") in AssemblyInfo.vb file.

then by using GACUTIL.EXE tool register your Components. this is the Proper
way to register your Components



[quoted text, click to view]
AddThis Social Bookmark Button