Groups | Blog | Home
all groups > dotnet interop > august 2003 >

dotnet interop : MSDN article: Deploying an Application for COM Access REALLY unclear (to me...)


José Joye
8/29/2003 9:19:56 PM
Reeading the MSDN page:

http://msdn.microsoft.com/library/en-us/cpguide/html/cpcondeployingapplicationforcomaccess.asp?frame=true

makes me really skeptic.

I thought that using regasm /tlb:blabla.tlb blabla.dll will register the
assembly so as to be used by COM compliant clients.
To me this was crystal clear that this utility will add entries in the
registry so that any client (having the exe located wherever on the pc will
be able to access interface exported).

However, according to the article, it seems that it has to be placed in the
GAC to allow such a behavior otherwise, it will be considered as a private
assembly. Am I missreading the article?


José

José Joye
8/29/2003 11:00:24 PM
I think I understand the problematic now.

In fact, I did not payed too much attention to what was placed in the
registry. I thought it was a reference to the managed dll (which is not true
[by default]. It is a ref to mscoree.dll).
So far, I always ticked the option in VS.Net to register the dll for com
interop. Doing so will somehow use the regasm with at least /tlb and
/codebase options. This will add reference to the managed location and then
allow the dll to be loaded from
its original location using the following probing:

[taken from a post of F. Powel]

regasm /codebase for ComInterop assembly:
1. Look for the the assembly in the GAC
2. Local directory (.ie directory of the executable)
3. Look for the the assembly using the codebase

When the ComInterop assembly refereneces another assembly:
1. Look for the the assembly in the GAC
2. Look for the the assembly using the codebase
3. Local directory (.ie directory of the executable)

José

[quoted text, click to view]

AddThis Social Bookmark Button