all groups > dotnet distributed apps > september 2007 >
You're in the

dotnet distributed apps

group:

Interop C# Application



Interop C# Application TimKnoll NO[at]SPAM gmail.com
9/6/2007 12:13:58 PM
dotnet distributed apps: I created a new VS 2005 C# application which calls an existing COM
component which I had created years ago in VC6. I added a reference
in Visual Studio 2005 to the COM component and it generated a
Interop.MyCOMApp.DLL. When I run the app in debug mode it calls the
COM module just fine. I'm building an InstallShield 12 project to
install my new C# EXE (I need to use InstallShield over VS - corporate
law).

I have a few questions:

1) Where should the Interop DLL be installed? To the application
directory?
2) When I try to install it to the app directory, I'm getting a
"cannot register COM componenet" error message for the existing COM
component. It isn't included in my InstallShield project, I'm
assuming its getting the information for the COM module from the
Interop DLL?
3) I notice that a copy of the COM DLL is now in my app directory even
though I didn't include it in the InstallShield project. How does it
get there?
4) What is Microsoft's recommended practice for calling a COM module
in VS 2005 and deploying it?

Thanks in advance for your help.

Tim.
Re: Interop C# Application TimKnoll NO[at]SPAM gmail.com
9/7/2007 5:21:30 AM
The reason I'm getting the register error when the InstallShield
install runs is its copying in the COM DLL to my application directory
and trying to register it. The COM DLL depends on a string of other
DLL's to be which they are not, hence the error. I have not been able
to tell if this is a InstallShield or .NET which copies the COM DLL to
the app directory. Is this how .NET typically handles a COM call?
Does it always copy in the COM DLL to try and avoid DLL Hell? What is
Microsoft's recommended solution for this?

Thanks.

Tim.



AddThis Social Bookmark Button