如何:使用 Tlbimp.exe 生成主互操作程序集
生成主互操作程序集的最简单方法是使用 Tlbimp.exe(类型库导入程序)。
使用 Tlbimp.exe 生成主互操作程序集
在命令提示处,键入:
tlbimp tlbfile **/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