Создание Windows-приложений на основе Visual C#

         

Генерирование сборок взаимодействия. Утилита tlbimp.exe


.NET-приложения могут использовать COM-классы с ранним или поздним связыванием. При использовании модели раннего связывания информация о типах должна быть известна на этапе компиляции. Для использования COM-типов в управляемом коде необходимо сгенерировать метаданные из библиотеки типов COM-компонента.

Библиотека описания типов COM-компонента может быть независимой от компонента и располагаться в файлах с расширением .tlb, .olb или .ocx. Также описание типов компонента может быть внедрено в качестве ресурса в .exe или .dll файл.

После обнаружения библиотеки описания типов COM-компонента можно приступить к генерации сборки, содержащей метаданные о типе. Это можно сделать с помощью утилиты tlbimp.exe (Type Library Importer). Для ее запуска выбираем Пуск\Все программы\ Microsoft Visual Studio .NET 2003 \ Visual Studio .NET Tools \ Visual Studio .NET 2003 Command Prompt и вводим название утилиты — tlbimp.exe. После генерации метаданных они сохраняются в виде обычной .NET-сборки. Такие сборки называются сборками взаимодействия, поскольку они включают в себя описание COM-компонента и не содержат кода. Утилита tlbimp.exe имеет следующий синтаксис:

Tlbimp TlbFile [/out: name] [/reference: file] [/silent] [/verbose] [/strictref] [/unsafe][ [/primary]][/publickey: file] [/keyfile: file][/keycontainer: name]

В таблице 5.4 представлено описание некоторых параметров утилиты:

Таблица 5.4. Некоторые параметры утилиты tlbimp.exe

ПараметрОписание
/out:filenameУказывает адрес, название сборки и пространство имен, содержащее метаданные
/keyfile:filenameПараметры для генерирования сборки, подписанной строгим именем
/reference:filenameЕсли компонент ссылается на внешние сборки, то с помощью этого аргумента можно указать адрес файла, в котором необходимо искать внешние типы
/primaryГлавная сборка взаимодействия для данного типа

Например, для генерирования .NET-сборки myInteropassembly.dll на основании библиотеки activeds.tlb запускаем следующую строку в окне Visual Studio .NET 2003 Command Prompt:



Содержание раздела