我刚刚完成了我的新 COM 项目(C#、.NET 3.5)的构建。此项目将由 VFP 应用程序调用。它在我的开发机器上运行良好,但现在我需要知道如何在用户机器上部署它。Click Once 不适用于此类项目,所以我想我只能手动分发 DLL。
那么,我应该将 DLL 放在哪里以及如何注册呢?
顺便说一句,3.5 框架已经安装在用户的机器上。
TIA
我刚刚完成了我的新 COM 项目(C#、.NET 3.5)的构建。此项目将由 VFP 应用程序调用。它在我的开发机器上运行良好,但现在我需要知道如何在用户机器上部署它。Click Once 不适用于此类项目,所以我想我只能手动分发 DLL。
那么,我应该将 DLL 放在哪里以及如何注册呢?
顺便说一句,3.5 框架已经安装在用户的机器上。
TIA
我真的从未将 RegSvr32 与 .Net 程序集一起使用,而是将 regasm 与 /codebase 选项一起使用:
C:\Windows\Microsoft.NET\Framework\v2.0.50727\regasm.exe /codebase mydll.dll
您还可以使用 /tlb 选项导出类型库并进行注册。
当然,最简单的方法是使用 vstudio 创建一个安装程序,它会为您完成此操作。
创建 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。