如何:使用 Tlbimp.exe 生成主互操作程序集

更新:2007 年 11 月

生成主互操作程序集的最简单方法是使用 类型库导入程序 (Tlbimp.exe)

使用 Tlbimp.exe 生成主互操作程序集

  • 在命令提示处,键入:

    tlbimptlbfile **/primary /keyfile:filename/out:**assemblyname

    在这个命令中,tlbfile 是包含 COM 类型库的文件,filename 是包含密钥对的容器或文件的名称,assemblyname 是要使用强名称签名的程序集的名称。

主互操作程序集只能引用其他主互操作程序集。如果您的程序集引用第三方 COM 类型库中的类型,必须先从发行者获取一个主互操作程序集,才能生成您的主互操作程序集。如果您是发行者,必须先为相关类型库生成一个主互操作程序集,才能生成引用这些类型库的主互操作程序集。

如果相关主互操作程序集的版本号与原类型库的版本号不同,即使安装在当前目录中也无法发现该程序集。必须在 Windows 注册表中注册该相关主互操作程序集或使用 /reference 选项,确保 Tlbimp.exe 能找到该相关 DLL。

您还可以包装类型库的多个版本。有关说明,请参见 如何:包装类型库的多个版本

示例

下面的示例导入 COM 类型库 LibUtil.tlb 并使用密钥文件 CompanyA.snk 为程序集 LibUtil.dll 签署强名称。通过省略特定命名空间名称,此示例生成默认命名空间 LibUtil。

tlbimp LibUtil.tlb /primary /keyfile:CompanyA.snk /out:LibUtil.dll

为使名称更具有说明性,(使用 VendorName.LibraryName 命名指导原则),下面的示例将重写程序集文件名和命名空间名称。

tlbimp LibUtil.tlb /primary /keyfile:CompanyA.snk /namespace:CompanyA.LibUtil /out:CompanyA.LibUtil.dll

下面的示例导入 MyLib.tlb(它引用 CompanyA.LibUtil.dll)并使用密钥文件 CompanyB.snk 为程序集 CompanyB.MyLib.dll 签署强名称。命名空间 CompanyB.MyLib 会重写默认命名空间名称。

tlbimp MyLib.tlb /primary /keyfile:CompanyB.snk /namespace:CompanyB.MyLib /reference:CompanyA.LibUtil.dll /out:CompanyB.MyLib.dll

请参见

任务

如何:包装类型库的多个版本

如何:手动创建主互操作程序集

概念

生成主 Interop 程序集

产生主 Interop 程序集