Поделиться через


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

Обновлен: Ноябрь 2007

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

tlbimp tlbFile [options]

Параметры

Аргумент

Описание

tlbFile

Имя любого файла, содержащего библиотеку типов COM.

Параметр

Описание

/asmversion:номер_версии

Определяет номер версии создаваемой сборки. Аргумент versionNumber в формате главная.вспомогательная.построение.редакция.

/delaysign

Указаывает на необходимость подписи полученной сборки строгим именем с использованием отложенной подписи. Этот параметр необходимо задавать вместе с параметром /keycontainer:, /keyfile: или /publickey:. Дополнительные сведения об отложенном процессе подписи см. в разделе Отложенная подпись сборки.

/help

Отображает синтаксис команд и параметров программы.

/keycontainerимя_контейнера

Подписывает результирующую сборку строгим именем, используя пару ключей (открытый-закрытый), находящуюся в контейнере ключей, заданном аргументом имя_контейнера.

/keyfile:имя_файла

Подписывает результирующую сборку строгим именем, используя официальную пару ключей издателя (открытый-закрытый), находящуюся в файле имя_файла.

/namespace:пространство_имен

Определяет пространство имен, в котором создается сборка.

/noclassmembers

Блокирует добавление программой Tlbimp.exe членов в классы. Это позволяет избежать вывода исключения TypeLoadException.

/nologo

Подавляет отображение эмблемы Майкрософт при запуске.

/out:имя_файла

Задает имя выходного файла, сборки, и пространства имен, в который записываются определения метаданных. Параметр /out не влияет на пространство имен сборки, если библиотека типов задает пользовательский атрибут IDL, который явно определяет пространство имен сборки. Если этот параметр не задан, Tlbimp.exe запишет метаданные в файл с именем исходной библиотеки типов, определенной во входном файле, и присвоит ему расширение .dll. Если имя выходного файла совпадает с именем входного файла, программа выдаст ошибку для предотвращения перезаписи библиотеки типов.

/primary

Создает основную сборку взаимодействия для заданной библиотеки типов. В сборку добавляются сведения, указывающие на то, что сборку создал издатель библиотеки типов. Определение основной сборки взаимодействия позволяет отличить сборку издателя от других сборок, созданных на основе библиотеки типов с использованием программы Tlbimp.exe. Параметр /primary следует указывать только издателю библиотеки типов, импортируемой при помощи средства Tlbimp.exe. Обратите внимание, что основную сборку взаимодействия необходимо подписывать строгим именем. Дополнительные сведения см. в разделе Основные сборки взаимодействия.

/publickey:имя_файла

Задает файл, содержащий открытый ключ для использования в качестве подписи результирующей сборки. Если вместо параметра /publickey: заданы параметры /keyfile: или /keycontainer:, Tlbimp.exe создает открытый ключ из пары "открытый-закрытый", заданной в параметрах /keyfile: or /keycontainer:. Параметр /publickey: поддерживает сценарии тестовых ключей и отложенной подписи. Файл находится в формате, созданном средством Sn.exe. Дополнительные сведения см. в сведениях о параметре -p программы Sn.exe в разделе Средство строгих имен (Sn.exe).

/reference:имя_файла

Задает файл сборки, который используется для разрешения ссылок на типы, определенные вне текущей библиотеки типов. Если параметр /reference не задан, Tlbimp.exe автоматически выполняет рекурсивный импорт всех внешних библиотек типов, на которые имеются ссылки в данной импортируемой библиотеке типов. Если параметр /reference задан, программа перед импортом других библиотек типов попытается разрешить внешние типы в сборках, на которые имеются ссылки.

/silent

Запрещает отображение сообщений об успешно выполненных операциях.

/strictref

Не импортирует библиотеку типов, если программа не может разрешить все ссылки в текущей сборке, в сборках, заданных параметром /reference, либо зарегистрированных основных сборках взаимодействия.

/strictref:nopia

То же самое, что /strictref, однако первичные сборки взаимодействия игнорируются.

/sysarray

Задает программу для импорта COM-стиля SafeArray как управляемого типа System.Array Class.

/tlbreference:имя_файла

Задает файл библиотеки типов, который должен использоваться для разрешения ссылок на библиотеку ссылок без обращения к реестру.

Обратите внимание, что при выборе этого параметра не будут загружаться более старые форматы библиотеки ссылок. Тем не менее, более старые форматы библиотеки типов можно загрузить неявным образом с использованием реестра или текущего каталога.

/transform:имя_преобразования

Преобразует метаданные в соответствии с параметром имя_преобразования.

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

Дополнительные сведения об этом параметре см. ниже в этой теме.

/unsafe

Создает интерфейсы без проверки системой безопасности .NET Framework. Вызов метода в данной форме повышает риск в системе безопасности. Не следует использовать этот параметр, если вы понимаете риски использования подобного кода.

/verbose

Задает режим подробного протоколирования; отображаются дополнительные сведения об импортируемой библиотеке типов.

/?

Отображает синтаксис команд и параметров программы.

tt0cf3sx.alert_note(ru-ru,VS.90).gifПримечание.

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

Заметки

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

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

При импорте библиотеки типов из модуля, содержащего несколько библиотек типов, к файлу библиотеки типов может быть добавлен идентификатор ресурса. 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] методов в disp-интерфейсах из библиотеки типов в возвращаемые значения в управляемой библиотеке.

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

Библиотека типов TestLib.dll из предыдущего примера включает метод disp-интерфейса с именем 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);

См. также

Основные понятия

Импорт библиотеки типов в виде сборки

Сборки со строгими именами

Атрибуты для импорта типов в сборки взаимодействия

Ссылки

Инструменты .NET Framework

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

Дизассемблер MSIL (Ildasm.exe)

Средство строгих имен (Sn.exe)

Командная строка пакета SDK

Другие ресурсы

Обзор преобразования библиотеки типов в сборку