C# 如何部署COM

C# 如何部署COM,c#,.net-3.5,deployment,com,registration,C#,.net 3.5,Deployment,Com,Registration,我刚刚完成了我的新COM项目(C#,.NET3.5)。此项目将由VFP应用程序调用。它在我的开发机器上运行得很好,但是现在我需要知道如何在用户的机器上部署它。Click Once不适用于此类项目,因此我想我必须手动分发DLL 那么,我应该把DLL放在哪里,如何注册它呢 顺便说一句,3.5框架已经安装在用户的机器上 TIA创建COM类和接口的描述 .Net程序集不包含类型库兼容格式的信息。因此,程序员有必要运行.Net提供的两个实用程序之一,将类的程序集描述提取到类型库文件中 一个实用程序是TLB

我刚刚完成了我的新COM项目(C#,.NET3.5)。此项目将由VFP应用程序调用。它在我的开发机器上运行得很好,但是现在我需要知道如何在用户的机器上部署它。Click Once不适用于此类项目,因此我想我必须手动分发DLL

那么,我应该把DLL放在哪里,如何注册它呢

顺便说一句,3.5框架已经安装在用户的机器上


TIA创建COM类和接口的描述

.Net程序集不包含类型库兼容格式的信息。因此,程序员有必要运行.Net提供的两个实用程序之一,将类的程序集描述提取到类型库文件中

一个实用程序是TLBEXP.EXE,.Net类型库导出程序。此命令行实用程序将要转换为类型库的程序集DLL文件的名称作为输入。程序员还可以指定要创建的类型库文件的名称

tlbexp ComServer.dll /out:ComServer.tlb

Assembly exported to C:\Magellan\Source\Output\Debug\ComServer.tlb
一旦创建了类型库,COM客户端就可以引用它,以获取COM客户端绑定到COM类接口所需的信息,并在运行时激活COM类

COM类和接口的注册

对于客户端在运行时可以访问的COM类,COM基础结构必须知道如何定位实现COM类的代码。以下命令可完成此操作:

regasm ComServer.dll
您的DLL可以放在任何您想要的地方,但C:\Program Files\MyApplication是一个不错的选择


创建COM类和接口的描述

.Net程序集不包含类型库兼容格式的信息。因此,程序员有必要运行.Net提供的两个实用程序之一,将类的程序集描述提取到类型库文件中

一个实用程序是TLBEXP.EXE,.Net类型库导出程序。此命令行实用程序将要转换为类型库的程序集DLL文件的名称作为输入。程序员还可以指定要创建的类型库文件的名称

tlbexp ComServer.dll /out:ComServer.tlb

Assembly exported to C:\Magellan\Source\Output\Debug\ComServer.tlb
一旦创建了类型库,COM客户端就可以引用它,以获取COM客户端绑定到COM类接口所需的信息,并在运行时激活COM类

COM类和接口的注册

对于客户端在运行时可以访问的COM类,COM基础结构必须知道如何定位实现COM类的代码。以下命令可完成此操作:

regasm ComServer.dll
您的DLL可以放在任何您想要的地方,但C:\Program Files\MyApplication是一个不错的选择


我从未将RegSvr32用于.Net程序集,而是将regasm与/codebase选项一起使用:

C:\Windows\Microsoft.NET\Framework\v2.0.50727\regasm.exe /codebase mydll.dll C:\Windows\Microsoft.NET\Framework\v2.0.50727\regasm.exe/codebase mydll.dll 还可以使用/tlb选项导出类型库并进行注册


当然,最简单的方法是使用vstudio创建一个安装程序,它会为您完成这项工作。

我从来没有将RegSvr32用于.Net程序集,而是使用regasm和/codebase选项:

C:\Windows\Microsoft.NET\Framework\v2.0.50727\regasm.exe /codebase mydll.dll C:\Windows\Microsoft.NET\Framework\v2.0.50727\regasm.exe/codebase mydll.dll 还可以使用/tlb选项导出类型库并进行注册


当然,最简单的方法就是用vstudio创建一个安装程序,它会帮你完成这项工作。

一个安装程序项目,这就是我为VFP构建的COM所做的。我不知道这个安装程序。我认为ClickOnce是唯一(免费)的方式。谢谢你的领导!一个安装程序项目,这是我为我必须为VFP构建的COM所做的。我不知道安装程序。我认为ClickOnce是唯一(免费)的方式。谢谢你的领导!