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


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

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

Это средство устанавливается автоматически с Visual Studio и пакетом SDK Windows. Чтобы запустить инструмент, мы рекомендуем использовать командную строку Visual Studio или командную строку пакета Windows SDK (командную оболочку). Эти служебные программы позволяют легко работать с инструментом, не переходя к папке установки. Дополнительные сведения см. в разделе Командная строка Visual Studio и пакета Windows SDK.

  • Если на компьютере установлена среда Visual Studio: на панели задач последовательно щелкните Start, All Programs, Visual Studio, Visual Studio Tools и Visual Studio Command Prompt.

    – или –

    Если на компьютере установлен пакет Windows SDK: на панели задач щелкните Start, выберите All Programs и откройте папку с пакетом Windows SDK, затем щелкните Command Prompt (или CMD Shell).

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

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

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

/VariantBoolFieldToBool

Преобразует поля VARIANT_BOOL в структурах в Boolean.

/?

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

ПримечаниеПримечание

В параметрах командной строки для 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);

См. также

Ссылки

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

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

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

Командная строка Visual Studio и пакета Windows SDK

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

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

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

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

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

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

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

Журнал изменений

Дата

Журнал

Причина

Апрель 2011

Добавлены сведения об использовании командных строк Visual Studio и Windows SDK.

Улучшение информации.

Май 2010

Добавлен недостающий переключатель.

Исправление ошибки содержимого.