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

Программа импорта библиотек типов преобразует определения типов, содержащиеся в библиотеке типов COM, в эквивалентные определения сборки среды CLR. Tlbimp.exe выводит двоичный файл (сборку), содержащий метаданные среды выполнения для типов, определенных в исходной библиотеке типов. Этот файл можно просмотреть с помощью таких средств, как Ildasm.exe.

Эта программа автоматически устанавливается вместе с Visual Studio. Для запуска этого средства используйте Командную строку разработчика или PowerShell для разработчиков в Visual Studio.

В командной строке введите следующее.

Синтаксис

tlbimp tlbFile [options]  

Параметры

Аргумент Описание
tlbFile Имя любого файла, содержащего библиотеку типов COM.
Параметр Описание:
/asmversion: versionnumber Задает номер версии создаваемой сборки. Аргумент номер_версии задается в формате главная.вспомогательная.сборка.редакция.
/company: companyinformation Добавляет сведения об организации в выходную сборку.
/copyright: copyrightinformation Добавляет сведения об авторских правах в выходную сборку. Эти сведения можно просмотреть в диалоговом окне Свойства файла сборки.
/delaysign Указывает Tlbimp.exe подписать результирующую сборку строгим именем с использованием отложенной подписи. Этот параметр необходимо задавать вместе с параметром /keycontainer: , /keyfile: или /publickey: . Дополнительные сведения о процессе отложенной подписи см. в разделе Отложенная подпись сборки.
/help Отображает синтаксис команд и параметров программы.
/keycontainer: containername Подписывает результирующую сборку строгим именем, используя пару ключей (открытый/закрытый) из контейнера ключей, заданного аргументом имя_контейнера.
/keyfile: filename Подписывает результирующую сборку строгим именем, используя официальную пару ключей издателя (открытый/закрытый) из файла имя_файла.
/machine: machinetype Создает сборку, ориентированную на указанный тип компьютера (микропроцессор). Поддерживаемые типы компьютеров: x86, x64, Itanium и кроссплатформенный.
/namespace: namespace Задает пространство имен, в котором создается сборка.
/noclassmembers Блокирует добавление программой Tlbimp.exe членов в классы. Это позволяет избежать исключения TypeLoadException.
/nologo Отключает отображение эмблемы Майкрософт при запуске.
/out: filename Задает имя выходного файла, сборки и пространства имен, в который записываются определения метаданных. Параметр /out не влияет на пространство имен сборки, если библиотека типов задает пользовательский атрибут IDL, который явно определяет пространство имен сборки. Если этот параметр не задан, Tlbimp.exe записывает метаданные в файл с именем фактической библиотеки типов, определенной во входном файле, и присваивает ему расширение DLL. Если имя выходного файла совпадает с именем входного файла, программа выдаст ошибку для предотвращения перезаписи библиотеки типов.
/primary Создает основную сборку взаимодействия для указанной библиотеки типов. В сборку добавляются сведения о том, что ее создал издатель библиотеки типов. Если задать основную сборку взаимодействия, то сборку издателя можно будет отличить от других сборок, созданных на основе библиотеки типов с помощью Tlbimp.exe. Параметр /primary должен указываться только издателем библиотеки типов, импортируемой с помощью средства Tlbimp.exe. Обратите внимание, что основную сборку взаимодействия необходимо подписывать строгим именем. Дополнительные сведения см. в разделе Основные сборки взаимодействия.
/product: productinformation Добавляет сведения о продукте в выходную сборку. Эти сведения можно просмотреть в диалоговом окне Свойства файла сборки.
/productversion: productversioninformation Добавляет сведения о версии продукта в выходную сборку. Можно использовать любой формат. Эти сведения можно просмотреть в диалоговом окне Свойства файла сборки.
/publickey: filename Задает файл, содержащий открытый ключ для подписи результирующей сборки. Если вместо параметра /publickey: задан параметр /keyfile: или /keycontainer: , программа Tlbimp.exe создает открытый ключ из пары "открытый/закрытый", заданной в параметре /keyfile: или /keycontainer: . Параметр /publickey: поддерживает сценарии тестовых ключей и отложенной подписи. Файл имеет формат файлов, создаваемых средством Sn.exe. Дополнительные сведения см. в сведениях о параметре -p программы Sn.exe в разделе Программа Strong Name (Sn.exe).
/reference: filename Задает файл сборки, который используется для разрешения ссылок на типы, определенные вне текущей библиотеки типов. Если параметр /reference не задан, программа Tlbimp.exe автоматически выполняет рекурсивный импорт всех внешних библиотек типов, на которые ссылается импортируемая библиотека типов. Если параметр /reference задан, перед импортом других библиотек типов программа пытается разрешить внешние типы в сборках, на которые имеются ссылки.
/silence: warningnumber Отключает отображение конкретного предупреждения. Этот параметр невозможно использовать с параметром /silent.
/silent Запрещает отображение сообщений об успешно выполненных операциях. Этот параметр невозможно использовать с параметром /silence.
/strictref Не импортирует библиотеку типов, если программа не может разрешить все ссылки в текущей сборке, в сборках, заданных параметром /reference, или в зарегистрированных основных сборках взаимодействия.
/strictref:nopia Эквивалентен /strictref, однако игнорирует первичные сборки взаимодействия.
/sysarray Задает средство для импорта типа SafeArray стиля COM как управляемого типа Array.
/tlbreference: filename Задает файл библиотеки типов для разрешения ссылок на библиотеку типов без обращения к реестру.

Обратите внимание, что при выборе этого параметра не будут загружаться некоторые более старые форматы библиотек типов. Однако их можно загрузить неявным образом с помощью реестра или текущего каталога.
/trademark: trademarkinformation Добавляет сведения о товарном знаке в выходную сборку. Эти сведения можно просмотреть в диалоговом окне Свойства файла сборки.
/transform: transformname Преобразует метаданные в соответствии с параметром имя_преобразования.

Задайте параметру имя_преобразования значение dispret, чтобы преобразовать параметры [out, retval] методов интерфейсов диспетчеризации в возвращаемые значения.

Дополнительные сведения об этом параметре см. далее в примерах этого раздела.
/unsafe Создает интерфейсы, не выполняя проверки безопасности .NET Framework. Вызов метода в данной форме может создавать угрозу безопасности. Этот параметр следует использовать только в том случае, если вам известно о рисках, связанных с вызовом этого кода.
/verbose Задает режим подробного протоколирования; отображает дополнительные сведения об импортируемой библиотеке типов.
/VariantBoolFieldToBool Преобразует поля VARIANT_BOOL в структурах в Boolean.
/? Отображает синтаксис команд и параметров программы.

Примечание

В параметрах командной строки для Tlbimp.exe не учитывается регистр и они могут задаваться в любом порядке. Можно вводить только часть имени параметра, достаточную для его однозначной идентификации. То есть запись /n эквивалентна записи /nologo, а /ou: outfile.dll — записи /out: outfile.dll.

Примечания

Tlbimp.exe преобразует только библиотеки типов целиком. С помощью этой программы невозможно создать сведения о подмножестве типов, определенных в одной библиотеке типов.

Часто бывает удобно или необходимо присваивать сборкам строгие имена. Поэтому Tlbimp.exe имеет параметры, позволяющие предоставлять сведения, необходимые для создания сборок со строгими именами. Как параметр /keyfile: , так и параметр /keycontainer: подписывают сборки строгими именами. Поэтому логично использовать только один из этих параметров.

Можно указать несколько ссылочных сборок, используя параметр /reference несколько раз.

Из-за способа создания сборок программой Tlbimp.exe невозможно изменить целевую платформу сборки на другую версию mscorlib. Например, если вы хотите создать сборку для .NET Framework 2.0, необходимо использовать Tlbimp.exe, поставляемый с пакетом SDK для .NET Framework 2.0/3.0/3.5. Для работы с .NET Framework 4.x следует использовать Tlbimp.exe в составе пакета SDK для .NET Framework 4.x.

При импорте библиотеки типов из модуля, содержащего несколько библиотек типов, к файлу библиотеки типов можно добавить идентификатор ресурса. Tlbimp.exe находит этот файл, только если он расположен в текущем каталоге или к нему задан полный путь. См. пример далее в этом разделе.

Примеры

Следующая команда создает сборку с таким же именем, как у библиотеки типов в myTest.tlb, и расширением DLL.

tlbimp myTest.tlb

Следующая команда создает сборку с именем myTest.dll.

tlbimp  myTest.tlb  /out:myTest.dll  

Следующая команда создает сборку с таким же именем, как у заданной MyModule.dll\1 библиотеки типов, и расширением DLL. Сборка MyModule.dll\1 должна находиться в текущем каталоге.

tlbimp MyModule.dll\1  

Следующая команда создает сборку с именем myTestLib.dll для библиотеки типов TestLib.dll. Параметр /transform:dispret преобразует все параметры [out, retval] методов в интерфейсах диспетчеризации из библиотеки типов в возвращаемые значения в управляемой библиотеке.

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

Библиотека типов TestLib.dll из предыдущего примера включает метод интерфейса диспетчеризации с именем SomeMethod, который возвращает тип void и имеет параметр [out, retval]. Следующая строка кода является подписью метода входной библиотеки типов для методаSomeMethod в библиотеке TestLib.dll.

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

Если задан параметр /transform:dispret, программа Tlbimp.exe преобразует параметр [out, retval] метода SomeMethod в возвращаемое значение bool. Ниже представлена подпись метода, создаваемая программой Tlbimp.exe для метода SomeMethod в управляемой библиотеке myTestLib.dll, когда задан параметр /transform:dispret.

bool SomeMethod();  

Если вы создаете с помощью Tlbimp.exe управляемую библиотеку для TestLib.dll и не задаете параметр /transform:dispret, программа создаст следующую подпись метода для метода SomeMethod в управляемой библиотеке myTestLib.dll.

void SomeMethod(out bool x);  

См. также