.NET Framework 工具

类型库导入程序   (Tlbimp.exe)请参见  
  .NET   Framework   工具   |   类型库导出程序   (TlbExp.exe)   |   将类型库当作程序集导入   |   有关从类型库转换到程序集的摘要   |   MSIL   反汇编程序   (Ildasm.exe)   |   强名称工具   (Sn.exe)   |   具有强名称的程序集  
  语言  
  C#  
   
  全部显示  
  类型库导入程序将   COM   类型库中的类型定义转换为公共语言运行库程序集中的等效定义。Tlbimp.exe   的输出为二进制文件(程序集),该文件中包含在原始类型库中定义的类型的运行库元数据。可以使用诸如   Ildasm.exe   这样的工具检查此文件。  
   
  tlbimp   tlbFile   [options]  
   
  参数   说明    
  tlbFile   包含   COM   类型库的任意文件的名称。    
  选项   说明    
  /asmversion:versionNumber   指定要生成的程序集的版本号。以   major.minor.build.revision   格式指定   versionNumber。    
  /delaysign   向   Tlbimp.exe   指定使用延迟签名以强名称对结果程序集进行签名。此选项必须与   /keycontainer:、/keyfile:   或   /publickey:   选项一起指定。有关延迟签名进程的更多信息,请参见延迟为程序集签名。    
  /help   显示此工具的命令语法和选项。    
  /keycontainer:containername   使用在   containername   指定的密钥容器中找到的公钥/私钥对,签发具有强名称的结果程序集。    
  /keyfile:filename   使用在   filename   中找到的发行者的正式公钥/私钥对,签发具有强名称的结果程序集。    
  /namespace:namespace   指定在其中生成程序集的命名空间。    
  /nologo   取消显示   Microsoft   启动标题。    
  /out:filename   指定输出文件、程序集以及要写入元数据定义的命名空间的名称。如果类型库指定的接口定义语言   (IDL)   自定义属性显式控制该程序集的命名空间,则   /out   选项对程序集的命名空间没有影响。如果您没有指定此选项,则   Tlbimp.exe   将元数据写入与在输入文件内定义的实际类型库同名的文件中,并且为其分配   .dll   扩展名。如果输出文件的名称与输入文件的名称相同,则该工具将生成一个错误,以防止重写该类型库。    
  /primary   生成指定类型库的主   interop   程序集。相关信息将被添加到该程序集中,以指示类型库的发行者已生成该程序集。通过指定主   interop   程序集,您可以将一个发行者的程序集与使用   Tlbimp.exe   从该类型库创建的任何其他程序集区分开来。如果您是正使用   Tlbimp.exe   导入的类型库的发行者,则只应使用   /primary   选项。请注意,您必须签发具有强名称的主   interop   程序集。有关更多信息,请参见主   Interop   程序集。    
  /publickey:filename   指定包含用来签发结果程序集的公钥的文件。如果您指定了   /keyfile:   或   /keycontainer:   选项而非   /publickey:,则   Tlbimp.exe   将根据由   /keyfile:   或   /keycontainer:   提供的公钥/私钥对来生成公钥。publickey:   选项支持测试键和延迟签名方案。该文件采用由   Sn.exe   生成的格式。有关更多信息,请参见强名称工具   (Sn.exe)   中   Sn.exe   的   -p   选项。    
  /reference:filename   指定程序集文件,用以解析对在当前类型库外定义的类型的引用。如果您没有指定   /reference   选项,Tlbimp.exe   将自动以递归的方式导入任何被导入的类型库引用的外部类型库。如果您指定了   /reference   选项,那么在导入其他类型库之前,该工具将尝试解析被引用程序集中的外部类型。    
  /silent   取消显示成功消息。    
  /strictref   如果该工具不能解析当前程序集内或用   /reference   选项指定的程序集内的所有引用,则不导入类型库。    
  /sysarray   指定该工具将   COM   样式   SafeArray   作为托管   System.Array   类类型导入。    
  /transform:transformName   按   transformName   参数的指定转换元数据。    
  指定   dispret   作为   transformName   参数,可以将仅支持调度的接口(调度接口)的方法的   [out,   retval]   参数转换为返回值。  
   
  有关此选项的更多信息,请参见本主题后面的示例。  
     
  /unsafe   在不进行   .NET   Framework   安全检查的情况下生成接口。调用以此方式公开的方法可能会导致安全风险。如果您不了解公开此类代码的风险,则不应使用此选项。    
  /verbose   指定详细模式;显示有关导入的类型库的附加信息。    
  /?   显示此工具的命令语法和选项。    
   
  注意       Tlbimp.exe   的命令行选项不区分大小写,并可以按任何顺序提供。只需指定足够的选项来唯一标识它。因此,/n   与   /nologo   等效,/ou:outfile.dll   与   /out:outfile.dll   等效。  
  备注  
  Tlbimp.exe   同时执行整个类型库的转换。该工具不能用于为在单个类型库中定义的类型子集生成类型信息。  
   
  能够将强名称分配给程序集通常是有用或必需的。因此,Tlbimp.exe   包括相应的选项,用以提供必需的信息来生成具有强名称的程序集。/keyfile:   和   /keycontainer:   选项均签发具有强名称的程序集。因此,一次只提供这些选项中的一个是合理的。  
   
  在从包含多个类型库的模块中导入类型库时,可以选择将资源   ID   追加到一个类型库文件中。只有当类型库文件位于当前目录或者您指定了完整的路径时,Tlbimp.exe   才能找到该文件。请参见本主题中后面的示例。  
   
  示例  
  下面的命令所生成的元数据   DLL   与在   myTest.dll   中找到的类型库具有相同的名称,并且具有   .dll   扩展名。  
   
  tlbimp   myTest.tlb  
   
  下面的命令生成名为   myTest.dll   的元数据   DLL。  
   
  tlbimp     myTest.tlb     /out:myTest.dll  
   
  下面的命令所生成的元数据   DLL   与由   MyModule.dll/1   指定的类型库具有相同的名称,并且具有   .dll   扩展名。MyModule.dll/1   必须位于当前目录中。  
   
  tlbimp   MyModule.dll/1  
   
  下面的命令为类型库   TestLib.dll   生成一个名为   myTestLib.dll   的元数据   DLL。/transform:dispret   选项将该类型库中的调度接口方法的任何   [out,   retval]   参数转换为托管库中的返回值。  
   
  tlbimp   TestLib.dll   /transform:dispret   /out:myTestLib.dll  
   
  上例中的类型库   TestLib.dll   包含一个名为   SomeMethod   的调度接口方法,它返回   void   且具有一个   [out,   retval]   参数。下面的代码是   TestLib.dll   中   SomeMethod   的输入类型库方法签名。  
   
  void   SomeMethod([out,   retval]   VARIANT_BOOL*);  
   
  指定   /transform:dispret   选项会使   Tlbimp.exe   将   SomeMethod   的   [out,   retval]   参数转换为   bool   返回值。以下是当指定   /transform:dispret   选项时,Tlbimp.exe   为托管库   myTestLib.dll   中的   SomeMethod   生成的方法签名。  
   
  [C#]  
  bool   SomeMethod();  
   
  如果使用   Tlbimp.exe   生成   TestLib.dll   的托管库时没有指定   /transform:dispret,则该工具为托管库   myTestLib.dll   中的   SomeMethod   生成以下方法签名。  
   
  [C#]  
  void   SomeMethod(out   bool   x);  
   
  请参见  
  .NET   Framework   工具   |   类型库导出程序   (TlbExp.exe)   |   将类型库当作程序集导入   |   有关从类型库转换到程序集的摘要   |   MSIL   反汇编程序   (Ildasm.exe)   |   强名称工具   (Sn.exe)   |   具有强名称的程序集

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值