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] "José Joye" <jose.joye@KILLTHESPAMSbluewin.ch> wrote in message
news:eknYNKmbDHA.3896@TK2MSFTNGP11.phx.gbl...
> 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é
>
>