views:

86

answers:

2

I just finished building my new COM project (C#, .NET 3.5). This project will be called by a VFP application. It's working great on my development machine, but now I need to know how to deploy it on the user's machine. Click Once isn't available for this kind of project, so I guess I'm stuck with manually distributing the DLL.

So, where should I put the DLL and how do I register it?

BTW, the 3.5 framework is already installed on the user's machine.

TIA

+1  A: 

Creating a Description of the COM class and Interfaces

.Net assemblies don't include information in Type Library compatible format. So it is necessary for the programmer to run one of two .Net-supplied utilities to extract the assembly description of a class into a Type Library file.

One utility is TLBEXP.EXE, the .Net Type Library Exporter. This command line utility takes as input the name of an assembly DLL file to be converted to a Type Library. The programmer can also specify the name of a Type Library file to be created.

tlbexp ComServer.dll /out:ComServer.tlb

Assembly exported to C:\Magellan\Source\Output\Debug\ComServer.tlb

Once a Type Library has been created, it can be referenced by a COM client to obtain the information necessary for the COM client to bind to the interfaces of the COM class, and activate the COM class at runtime.

Registration of the COM Class and Interfaces

For a COM class to be accessible by the client at runtime, the COM infrastructure must know how to locate the code that implements the COM class. The following command accomplishes this:

regasm ComServer.dll

Your DLL can be put anywhere you wish, but a good choice is C:\Program Files\MyApplication.

http://www.csharphelp.com/archives/archive190.html

Robert Harvey
+3  A: 

I've really never used RegSvr32 with .Net assemblies, rather I use the regasm with the /codebase option:

    C:\Windows\Microsoft.NET\Framework\v2.0.50727\regasm.exe /codebase mydll.dll

You can also use the /tlb option to export the type library and register it.

Of course the easiest way, just create an installer with vstudio and it will do this for you.

csharptest.net
AN installer project, that is what I did for the COM I had to build for VFP.
nportelli
I didn't know about the installer. I thought that ClickOnce was the only (free) way. Thanks for the lead!
izokurew