tlb文件怎么打开


tlb文件怎么打开  

在 .NET Core 中公开 .NET 对象给 COM 的过程相较于 .NET Framework 有了显著的简化。以下是引导你在 .NET Core 中向 COM 公开类的详细步骤。本教程将介绍如何:

从 .NET Core 创建并公开类给 COM。

在构建 .NET Core 库的过程中生成 COM 服务器。

自动生成无需注册表的 COM 并行服务器清单。

在开始之前,你需要满足以下条件:

安装 .NET Core 3.0 SDK 或更高版本。

创建库步骤:

首先创建一个新的库。这可以通过创建一个新的文件夹并在该文件夹中运行以下命令来完成:使用 .NET Core CLI 命令 `dotnet new classlib`。

打开生成的 Class1.cs 文件。

在文件顶部添加 `using System.Runtime.InteropServices;`。

创建一个名为 IServer 的接口,并使用 ComVisible(true) 属性标记它。例如:

csharp

using System;

using System.Runtime.InteropServices;

[ComVisible(true)]

[Guid("你的接口GUID")] //例如:fe103d6e-e71b-414c-80bf-982f18f6c1c7

[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]

public interface IServer

double ComputePi(); // 计算常数的值

在接口上添加 [Guid("你的GUID")] 属性,这里应填入你的 COM 接口的 GUID。这个 GUID 需要是唯一的,作为此 COM 接口的唯一标识符。你可以在 Visual Studio 中通过“工具”>“创建 GUID”来生成 GUID。同样,添加 [InterfaceType] 属性来指定接口应实现的基本 COM 接口。

接下来,创建一个实现 IServer 接口的名为 Server 的类,并为其添加相应的 GUID 和 ComVisible 属性。

在项目的 .csproj 文件中进行配置:

打开项目文件并在相应标记中添加 true,以生成 COM 主机和启用 RegFree COM。

生成项目。生成后的输出将包含 .dll 文件、.deps.json、.runtimeconfig.json 以及用于 COM 的 .comhost.dll 文件和 .manifest 文件。

注册 COM 主机:

打开具有管理员权限的命令提示符,运行 `regsv host.dll`,这将使用 COM 注册所有公开的 .NET 对象。

注意:与 .NET Framework 不同,在 .NET Core 中,需要为每个希望通过 COM 激活的类指定其 CLSID。这意味着如果尝试创建一个想通过 COM 接口公开的类而未指定其 GUID 的类实例时,将无法正常工作。这是因为我们需要使用 CLSID 作为关键部分来通过 COM 注册此类。这一点特别重要且需要在设计过程中牢记。不支持 COM 组件的自包含部署,仅支持依赖于运行时的部署方式。在同一进程中同时加载 .NET Framework 和 .NET Core 存在诊断限制,特别是在调试托管组件方面,因为这两个运行时实例不共享托管程序集,这意味着它们之间的实际 .NET 类型共享是不可能的,所有的交互都必须仅限于公开的 COM 接口协议。更多细节和示例可以在 GitHub 上的 dotnet/samples 存储库中找到一个正在运行的 COM 服务器示例。

  tlb文件怎么打开