Tlbimp.exe (программа экспорта библиотек типов)
Программа импорта библиотек типов преобразует определения типов, содержащиеся в библиотеке типов COM, в эквивалентные определения сборки среды CLR. Tlbimp.exe выводит двоичный файл (сборку), содержащий метаданные среды выполнения для типов, определенных в исходной библиотеке типов. Этот файл можно просмотреть с помощью таких средств, как Ildasm.exe.
Эта программа автоматически устанавливается вместе с Visual Studio. Для запуска этого средства используйте Командную строку разработчика или PowerShell для разработчиков в Visual Studio.
Введите в командной строке: .
Синтаксис
tlbimp tlbFile [options]
Параметры
Аргумент | Description |
---|---|
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);
См. также
- Сервис
- Tlbexp.exe (программа экспорта библиотек типов)
- Импорт библиотеки типов в виде сборки
- Общие сведения о преобразовании библиотеки типов в сборку
- Ildasm.exe (дизассемблер IL)
- Sn.exe (средство строгих имен)
- Сборки со строгими именами
- Атрибуты для импорта библиотек типов в сборки взаимодействия
- Оболочки командной строки для разработчиков