Tlbimp.exe (программа экспорта библиотек типов)Tlbimp.exe (Type Library Importer)

Программа импорта библиотек типов преобразует определения типов, содержащиеся в библиотеке типов COM, в эквивалентные определения сборки среды CLR.The Type Library Importer converts the type definitions found within a COM type library into equivalent definitions in a common language runtime assembly. Tlbimp.exe выводит двоичный файл (сборку), содержащий метаданные среды выполнения для типов, определенных в исходной библиотеке типов.The output of Tlbimp.exe is a binary file (an assembly) that contains runtime metadata for the types defined within the original type library. Этот файл можно просмотреть с помощью таких средств, как Ildasm.exe.You can examine this file with tools such as Ildasm.exe.

Эта программа автоматически устанавливается вместе с Visual Studio.This tool is automatically installed with Visual Studio. Чтобы применить этот инструмент, воспользуйтесь командной строкой разработчика для Visual Studio (или командной строкой Visual Studio в Windows 7).To run the tool, use the Developer Command Prompt for Visual Studio (or the Visual Studio Command Prompt in Windows 7). Дополнительные сведения см. в разделе Командные строки.For more information, see Command Prompts.

В командной строке введите следующее.At the command prompt, type the following:

СинтаксисSyntax

tlbimp tlbFile [options]  

ПараметрыParameters

АргументArgument ОПИСАНИЕDescription
tlbFiletlbFile Имя любого файла, содержащего библиотеку типов COM.The name of any file that contains a COM type library.
ПараметрOption ОПИСАНИЕDescription
/asmversion: номер_версии/asmversion: versionnumber Задает номер версии создаваемой сборки.Specifies the version number of the assembly to produce. Аргумент номер_версии задается в формате главная.вспомогательная.сборка.редакция.Specify versionnumber in the format major.minor.build.revision.
/company: companyinformation/company: companyinformation Добавляет сведения об организации в выходную сборку.Adds company information to the output assembly.
/copyright: copyrightinformation/copyright: copyrightinformation Добавляет сведения об авторских правах в выходную сборку.Adds copyright information to the output assembly. Эти сведения можно просмотреть в диалоговом окне Свойства файла сборки.This information can be viewed in the File Properties dialog box for the assembly.
/delaysign/delaysign Указывает Tlbimp.exe подписать результирующую сборку строгим именем с использованием отложенной подписи.Specifies to Tlbimp.exe to sign the resulting assembly with a strong name using delayed signing. Этот параметр необходимо задавать вместе с параметром /keycontainer: , /keyfile: или /publickey: .You must specify this option with either the /keycontainer:, /keyfile:, or /publickey: option. Дополнительные сведения о процессе отложенной подписи см. в разделе Отложенная подпись сборки.For more information on the delayed signing process, see Delay Signing an Assembly.
/help/help Отображает синтаксис команд и параметров программы.Displays command syntax and options for the tool.
/keycontainer: имя_контейнера/keycontainer: containername Подписывает результирующую сборку строгим именем, используя пару ключей (открытый/закрытый) из контейнера ключей, заданного аргументом имя_контейнера.Signs the resulting assembly with a strong name using the public/private key pair found in the key container specified by containername.
/keyfile: имя_файла/keyfile: filename Подписывает результирующую сборку строгим именем, используя официальную пару ключей издателя (открытый/закрытый) из файла имя_файла.Signs the resulting assembly with a strong name using the publisher's official public/private key pair found in filename.
/machine: machinetype/machine: machinetype Создает сборку, ориентированную на указанный тип компьютера (микропроцессор).Creates an assembly that targets the specified machine type (microprocessor). Поддерживаемые типы компьютеров: x86, x64, Itanium и кроссплатформенный.Supported machine types: x86, x64, Itanium, and Agnostic.
/namespace: пространство_имен/namespace: namespace Задает пространство имен, в котором создается сборка.Specifies the namespace in which to produce the assembly.
/noclassmembers/noclassmembers Блокирует добавление программой Tlbimp.exe членов в классы.Prevents Tlbimp.exe from adding members to classes. Это позволяет избежать исключения TypeLoadException.This avoids a potential TypeLoadException.
/nologo/nologo Отключает отображение эмблемы Майкрософт при запуске.Suppresses the Microsoft startup banner display.
/out: имя_файла/out: filename Задает имя выходного файла, сборки и пространства имен, в который записываются определения метаданных.Specifies the name of the output file, assembly, and namespace in which to write the metadata definitions. Параметр /out не влияет на пространство имен сборки, если библиотека типов задает пользовательский атрибут IDL, который явно определяет пространство имен сборки.The /out option has no effect on the assembly's namespace if the type library specifies the Interface Definition Language (IDL) custom attribute that explicitly controls the assembly's namespace. Если этот параметр не задан, Tlbimp.exe записывает метаданные в файл с именем фактической библиотеки типов, определенной во входном файле, и присваивает ему расширение DLL.If you do not specify this option, Tlbimp.exe writes the metadata to a file with the same name as the actual type library defined within the input file and assigns it a .dll extension. Если имя выходного файла совпадает с именем входного файла, программа выдаст ошибку для предотвращения перезаписи библиотеки типов.If the output file is the same name as the input file, the tool generates an error to prevent overwriting the type library.
/primary/primary Создает основную сборку взаимодействия для указанной библиотеки типов.Produces a primary interop assembly for the specified type library. В сборку добавляются сведения о том, что ее создал издатель библиотеки типов.Information is added to the assembly indicating that the publisher of the type library produced the assembly. Если задать основную сборку взаимодействия, то сборку издателя можно будет отличить от других сборок, созданных на основе библиотеки типов с помощью Tlbimp.exe.By specifying a primary interop assembly, you differentiate a publisher's assembly from any other assemblies that are created from the type library using Tlbimp.exe. Параметр /primary должен указываться только издателем библиотеки типов, импортируемой с помощью средства Tlbimp.exe.You should only use the /primary option if you are the publisher of the type library that you are importing with Tlbimp.exe. Обратите внимание, что основную сборку взаимодействия необходимо подписывать строгим именем.Note that you must sign a primary interop assembly with a strong name. Дополнительные сведения см. в разделе Основные сборки взаимодействия.For more information, see Primary Interop Assemblies.
/product: productinformation/product: productinformation Добавляет сведения о продукте в выходную сборку.Adds product information to the output assembly. Эти сведения можно просмотреть в диалоговом окне Свойства файла сборки.This information can be viewed in the File Properties dialog box for the assembly.
/productversion: productversioninformation/productversion: productversioninformation Добавляет сведения о версии продукта в выходную сборку.Adds product version information to the output assembly. Можно использовать любой формат.There are no format restrictions. Эти сведения можно просмотреть в диалоговом окне Свойства файла сборки.This information can be viewed in the File Properties dialog box for the assembly.
/publickey: имя_файла/publickey: filename Задает файл, содержащий открытый ключ для подписи результирующей сборки.Specifies the file containing the public key to use to sign the resulting assembly. Если вместо параметра /publickey: задан параметр /keyfile: или /keycontainer: , программа Tlbimp.exe создает открытый ключ из пары "открытый/закрытый", заданной в параметре /keyfile: или /keycontainer: .If you specify the /keyfile: or /keycontainer: option instead of /publickey:, Tlbimp.exe generates the public key from the public/private key pair supplied with /keyfile: or /keycontainer:. Параметр /publickey: поддерживает сценарии тестовых ключей и отложенной подписи.The /publickey: option supports test key and delay signing scenarios. Файл имеет формат файлов, создаваемых средством Sn.exe.The file is in the format generated by Sn.exe. Дополнительные сведения см. в сведениях о параметре -p программы Sn.exe в разделе Программа Strong Name (Sn.exe).For more information, see the -p option of Sn.exe in Strong Name Tool (Sn.exe).
/reference: имя_файла/reference: filename Задает файл сборки, который используется для разрешения ссылок на типы, определенные вне текущей библиотеки типов.Specifies the assembly file to use to resolve references to types defined outside the current type library. Если параметр /reference не задан, программа Tlbimp.exe автоматически выполняет рекурсивный импорт всех внешних библиотек типов, на которые ссылается импортируемая библиотека типов.If you do not specify the /reference option, Tlbimp.exe automatically recursively imports any external type library that the type library being imported references. Если параметр /reference задан, перед импортом других библиотек типов программа пытается разрешить внешние типы в сборках, на которые имеются ссылки.If you specify the /reference option, the tool attempts to resolve external types in the referenced assemblies before it imports other type libraries.
/silence: warningnumber/silence: warningnumber Отключает отображение конкретного предупреждения.Suppresses the display of the specified warning. Этот параметр невозможно использовать с параметром /silent.This option cannot be used with /silent.
/silent/silent Запрещает отображение сообщений об успешно выполненных операциях.Suppresses the display of success messages. Этот параметр невозможно использовать с параметром /silence.This option cannot be used with /silence.
/strictref/strictref Не импортирует библиотеку типов, если программа не может разрешить все ссылки в текущей сборке, в сборках, заданных параметром /reference, или в зарегистрированных основных сборках взаимодействия.Does not import a type library if the tool cannot resolve all references within the current assembly, the assemblies specified with the /reference option, or registered primary interop assemblies (PIAs).
/strictref:nopia/strictref:nopia Эквивалентен /strictref, однако игнорирует первичные сборки взаимодействия.Same as /strictref, but ignores PIAs.
/sysarray/sysarray Задает средство для импорта типа SafeArray стиля COM как управляемого типа Array.Specifies to the tool to import a COM style SafeArray as a managed Array type.
/tlbreference: имя_файла/tlbreference: filename Задает файл библиотеки типов для разрешения ссылок на библиотеку типов без обращения к реестру.Specifies the type library file to use to resolve type library references without consulting the registry.

Обратите внимание, что при выборе этого параметра не будут загружаться некоторые более старые форматы библиотек типов.Note that this option will not load some older type library formats. Однако их можно загрузить неявным образом с помощью реестра или текущего каталога.However, you can still load older type library formats implicitly through the registry or current directory.
/trademark: trademarkinformation/trademark: trademarkinformation Добавляет сведения о товарном знаке в выходную сборку.Adds trademark information to the output assembly. Эти сведения можно просмотреть в диалоговом окне Свойства файла сборки.This information can be viewed in the File Properties dialog box for the assembly.
/transform: имя_преобразования/transform: transformname Преобразует метаданные в соответствии с параметром имя_преобразования.Transforms metadata as specified by the transformname parameter.

Задайте параметру имя_преобразования значение dispret, чтобы преобразовать параметры [out, retval] методов интерфейсов диспетчеризации в возвращаемые значения.Specify dispret for the transformname parameter to transform [out, retval] parameters of methods on dispatch-only interfaces (dispinterfaces) into return values.

Дополнительные сведения об этом параметре см. далее в примерах этого раздела.For more information about this option, see the examples later in this topic.
/unsafe/unsafe Создает интерфейсы, не выполняя проверки безопасности .NET Framework.Produces interfaces without .NET Framework security checks. Вызов метода в данной форме может создавать угрозу безопасности.Calling a method that is exposed in this way might pose a security risk. Этот параметр следует использовать только в том случае, если вам известно о рисках, связанных с вызовом этого кода.You should not use this option unless you are aware of the risks of exposing such code.
/verbose/verbose Задает режим подробного протоколирования; отображает дополнительные сведения об импортируемой библиотеке типов.Specifies verbose mode; displays additional information about the imported type library.
/VariantBoolFieldToBool/VariantBoolFieldToBool Преобразует поля VARIANT_BOOL в структурах в Boolean.Converts VARIANT_BOOL fields in structures to Boolean.
/?/? Отображает синтаксис команд и параметров программы.Displays command syntax and options for the tool.

Примечание

В параметрах командной строки для Tlbimp.exe не учитывается регистр и они могут задаваться в любом порядке.The command-line options for Tlbimp.exe are case-insensitive and can be supplied in any order. Можно вводить только часть имени параметра, достаточную для его однозначной идентификации.You only need to specify enough of the option to uniquely identify it. То есть запись /n эквивалентна записи /nologo, а /ou: outfile.dll — записи /out: outfile.dll.Therefore, /n is equivalent to /nologo and /ou: outfile.dll is equivalent to /out: outfile.dll.

ПримечанияRemarks

Tlbimp.exe преобразует только библиотеки типов целиком.Tlbimp.exe performs conversions on an entire type library at one time. С помощью этой программы невозможно создать сведения о подмножестве типов, определенных в одной библиотеке типов.You cannot use the tool to generate type information for a subset of the types defined within a single type library.

Часто бывает удобно или необходимо присваивать сборкам строгие имена.It is often useful or necessary to be able to assign strong names to assemblies. Поэтому Tlbimp.exe имеет параметры, позволяющие предоставлять сведения, необходимые для создания сборок со строгими именами.Therefore, Tlbimp.exe includes options for supplying the information necessary to generate strongly named assemblies. Как параметр /keyfile: , так и параметр /keycontainer: подписывают сборки строгими именами.Both the /keyfile: and /keycontainer: options sign assemblies with strong names. Поэтому логично использовать только один из этих параметров.Therefore, it is logical to supply only one of these options at a time.

Можно указать несколько ссылочных сборок, используя параметр /reference несколько раз.You can specify multiple reference assemblies by using the /reference option multiple times.

Из-за способа создания сборок программой Tlbimp.exe невозможно изменить целевую платформу сборки на другую версию mscorlib.Due to the way in which Tlbimp.exe generates assemblies, it is not possible to retarget an assembly to a different mscorlib version. Например, если вы хотите создать сборку для .NET Framework 2.0, необходимо использовать Tlbimp.exe, поставляемый с пакетом SDK для .NET Framework 2.0/3.0/3.5.For example, if you desire to generate an assembly that targets .NET Framework 2.0, the Tlbimp.exe shipped with the .NET Framework 2.0/3.0/3.5 SDK must be used. Для работы с .NET Framework 4.x следует использовать Tlbimp.exe в составе пакета SDK для .NET Framework 4.x.In order to target .NET Framework 4.x, the Tlbimp.exe shipped with a .NET Framework 4.x SDK should be used.

При импорте библиотеки типов из модуля, содержащего несколько библиотек типов, к файлу библиотеки типов можно добавить идентификатор ресурса.A resource ID can optionally be appended to a type library file when importing a type library from a module containing multiple type libraries. Tlbimp.exe находит этот файл, только если он расположен в текущем каталоге или к нему задан полный путь.Tlbimp.exe is able to locate this file only if it is in the current directory or if you specify the full path. См. пример далее в этом разделе.See the example later in this topic.

ПримерыExamples

Следующая команда создает сборку с таким же именем, как у библиотеки типов в myTest.tlb, и расширением DLL.The following command generates an assembly with the same name as the type library found in myTest.tlb and with the .dll extension.

tlbimp myTest.tlb   

Следующая команда создает сборку с именем myTest.dll.The following command generates an assembly with the name myTest.dll.

tlbimp  myTest.tlb  /out:myTest.dll  

Следующая команда создает сборку с таким же именем, как у заданной MyModule.dll\1 библиотеки типов, и расширением DLL.The following command generates an assembly with the same name as the type library specified by MyModule.dll\1 and with the .dll extension. Сборка MyModule.dll\1 должна находиться в текущем каталоге.MyModule.dll\1 must be located in the current directory.

tlbimp MyModule.dll\1  

Следующая команда создает сборку с именем myTestLib.dll для библиотеки типов TestLib.dll.The following command generates an assembly with the name myTestLib.dll for the type library TestLib.dll. Параметр /transform:dispret преобразует все параметры [out, retval] методов в интерфейсах диспетчеризации из библиотеки типов в возвращаемые значения в управляемой библиотеке.The /transform:dispret option transforms any [out, retval] parameters of methods on dispinterfaces in the type library into return values in the managed library.

tlbimp TestLib.dll /transform:dispret /out:myTestLib.dll  

Библиотека типов TestLib.dll из предыдущего примера включает метод интерфейса диспетчеризации с именем SomeMethod, который возвращает тип void и имеет параметр [out, retval].The type library TestLib.dll, in the preceding example, includes a dispinterface method named SomeMethod that returns void and has an [out, retval] parameter. Следующая строка кода является подписью метода входной библиотеки типов для методаSomeMethod в библиотеке TestLib.dll.The following code is the input type library method signature for SomeMethod in TestLib.dll.

void SomeMethod([out, retval] VARIANT_BOOL*);  

Если задан параметр /transform:dispret, программа Tlbimp.exe преобразует параметр [out, retval] метода SomeMethod в возвращаемое значение bool.Specifying the /transform:dispret option causes Tlbimp.exe to transform the [out, retval] parameter of SomeMethod into a bool return value. Ниже представлена подпись метода, создаваемая программой Tlbimp.exe для метода SomeMethod в управляемой библиотеке myTestLib.dll, когда задан параметр /transform:dispret.The following is the method signature that Tlbimp.exe produces for SomeMethod in the managed library myTestLib.dll when the /transform:dispret option is specified.

bool SomeMethod();  

Если вы создаете с помощью Tlbimp.exe управляемую библиотеку для TestLib.dll и не задаете параметр /transform:dispret, программа создаст следующую подпись метода для метода SomeMethod в управляемой библиотеке myTestLib.dll.If you use Tlbimp.exe to produce a managed library for TestLib.dll without specifying the /transform:dispret, the tool produces the following method signature for SomeMethod in the managed library myTestLib.dll.

void SomeMethod(out bool x);  

См. такжеSee also