Deployment COM Interop question

  • Thread starter Thread starter Saurabh
  • Start date Start date
S

Saurabh

Hello All,

I have a .NET component which needs to be deployed on the target machine so
that It can be exposed to the COM world. On the development machine, the
'register for com interop' setting when set to true, does the trick. When I
deploy it on a target machine (I am using Installshield Professional 6.3)
how do I register the assembly? Has anybody done it through installshield?
The other thing is when If I copy this assembly on the target machine, and
run regasm MyAssembly.dll, I can see the Object in the OLE / COM viewer but
not the interface which this object implements. Am I doing something wrong.
The tlb that is generated during the build is a separate file and its not
embedded in the dll.

Any inputs?

TIA,

--Saurabh
PS : Sorry for posting to this newsgroup though its not exactly a forms
question
 
Found the solution!!
If I try doing regasm /codebase MyAssembly.dll then it works though it gives
the warning saying not a strong name. Anyways, It registers and works. does
anybody know whats the difference between using /codebase switch and not
using it ?

TIA,

--Saurabh
 
When you specify 'codebase' with regasm, it forces regasm to add the path to
your COM CoClass DLL into the registry. This allows the object to be
instanced via COM CreateInstance wherever the dll is located. If you don't
specify 'codebase' then the DLL must live in the same directory (or child
directory) as the application that is going to instance it.
 
Well, I thought if I register dll, I don't need to worry about the path. As
the application I am writing is a DLL to be used by another application
(lets call it a parent), I don't want to add anything to the parent's
folder. Does it mean that I have to use /codebase switch.

Is there any way of achieving it using Installshield Professional 6.3

TIA,

--Saurabh
 
Back
Top