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
Основные понятия
Импорт библиотеки типов в виде сборки
Атрибуты для импорта типов в сборки взаимодействия
Другие ресурсы
Обзор преобразования библиотеки типов в сборку
Журнал изменений
Дата |
Журнал |
Причина |
---|---|---|
Апрель 2011 |
Добавлены сведения об использовании командных строк Visual Studio и Windows SDK. |
Улучшение информации. |
Май 2010 |
Добавлен недостающий переключатель. |
Исправление ошибки содержимого. |