如何生成可从 COM 客户端调用的 .NET 服务器
本节解释如何生成和安装将从 COM 应用程序使用的托管代码。生成过程包括以下步骤:
- 编写和编译托管代码。
- 使用 tlbexp.exe 实用工具为程序集生成类型库。
- 安装和注册程序集。
- 编写和编译引用程序集中类型的 COM 代码。
编写和编译托管代码
在开始生成将从 COM 使用的程序集之前,重要的是要了解公共语言运行库的互操作性服务的限制。请参阅互操作性入门,以获得关于这些限制的确切内容的详细信息。如果您的托管程序集打算用来在几个应用程序之间进行共享,那么请确保该程序集有一个共享名称,以便能将其安装到全局程序集缓存中(请参阅如何创建具有共享名称的程序集)。如果程序集没有共享的名称,则它只能用于单个应用程序。
编写完托管代码后,编译过程就与其他任何托管代码的编译过程一样了。
生成类型库
大多数非托管应用程序的开发工具都要求先有一个类型库,然后您才能引用外部类型。可使用 tlbexp.exe 从程序集生成类型库,tlbexp.exe 将生成一个 .tlb 文件,非托管开发工具此后即可引用该文件。tlbexp TestServer.dll
例如,使用 Visual Basic 6.0 可以从“项目/引用”对话框来引用 .tlb 文件。在 Visual C++ 6.0 中,可以使用 #import 语句将类型定义从类型库直接导入到 C++。一旦向项目添加了对类型库的引用,就可从非托管代码引用在该库中定义的类型。
安装和注册程序集
为了从非托管代码真正创建托管类型,需要在全局程序集缓存 (GAC) 中安装该程序集,并将其注册以便从 COM 使用。可使用 gacutil.exe 实用工具在全局程序集缓存中安装程序集。可使用 /u 选项来卸载程序集。
gacutil /i TestServer.dll
可使用 regasm.exe 实用工具来注册程序集。可使用 /u 选项来卸载程序集。
regasm TestServer.dll