Groups | Blog | Home
all groups > dotnet component services > august 2004 >

dotnet component services : Newbie, dotNET: Local DLL is used instead of COM Component


Ralf Hermanns
8/28/2004 10:58:12 PM
Please forgive me if this is stupid, but being new to COM, I cannot figure
it out. I followed one examples in Mike Gunderloys 70-310 exam preparation
book concerning component services.

I created a serviced component in a class library project, signed it,
installed (regsvcs) it to COM+ from the bin folder Visual Studio compiled it
to. I did not put it in Global Assembly Cache, as the book suggest not to do
at this stage.

I then created a simple windows forms application, with a button to use my
Component. I referenced and imported the dll project mentioned before, as
instructed in the book. Works fine, but...

Taking a closer look, I noticed that the compiler copied the component dll
into the application folder (as VS does always with a referenced dll).
Watching the output when running my test bed, I could see that this dll
(same folder as .exe) was loaded, not the one at the place the dll was when
I registered it to COM+.

Finally, deleting the local copy of the dll from the applications folder did
as feared: application cannot be started anymore... At this stage, the COM+
Registration should have insured the dll could have been loaded from the
place it was when I ran regsvcs, shouldn't it?

COM+ is not used at all here in my case, the dll with all its fancy
<Attribute...> stuff and registration is used as if it was a simple standard
dll. Why is that? How to fix that behaviour? Does the GAC solve this?

Thanks, Ralf

Steve S
8/29/2004 7:06:00 PM
It all comes down to howyou instanciated the object........

DIM tbo as New MyDLL.Interface will use the local dll

DIM tbo as MyDLL.Interface
tbo = createobject("MyDLL.Interface")

will create it in COM+ services.......


ALOHA
[quoted text, click to view]

AddThis Social Bookmark Button