Regasm.exe (средство регистрации сборок)

Средство регистрации сборки считывает метаданные сборки и добавляет в реестр необходимые записи, что позволяет COM-клиентам прозрачно создавать классы .NET Framework. Зарегистрированные классы могут использоваться любыми COM-клиентами так же, как COM-классы. Класс регистрируется только один раз, при установке сборки. Экземпляры классов внутри сборки не могут создаваться на основе COM-классов до их фактической регистрации.

Для запуска этого средства используйте Командную строку разработчика или PowerShell для разработчиков в Visual Studio.

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

Синтаксис

regasm assemblyFile [options]

Параметры

Параметр Описание
assemblyFile Сборка, которая должна быть зарегистрирована в COM.
Параметр Описание
/codebase Создает в реестре запись Codebase. Запись Codebase указывает путь к файлу сборки, которая не установлена в глобальном кэше сборок. Не указывайте этот параметр, если впоследствии вы будете устанавливать регистрируемую сборку в глобальном кэше сборок. Настоятельно рекомендуется, чтобы аргумент assemblyFile , указанный с параметром /codebase , был сборкой со строгим именем.
/registered Указывает, что это средство будет ссылаться только на библиотеки типов, которые уже были зарегистрированы.
/asmpath:directory Задает каталог, содержащий ссылки на сборки. Этот параметр необходимо указывать вместе с параметром /regfile.
/nologo Отключает отображение эмблемы Майкрософт при запуске.
/regfile [:regFile] Создает для сборки REG-файл, содержащий необходимые записи реестра. Указание этого параметра не приводит к внесению изменений в реестр. Вы не можете использовать этот параметр с параметрами /u и /tlb.
/silent или /s Запрещает отображение сообщений об успешно выполненных операциях.
/tlb [:typeLibFile] Создает библиотеку типов из указанной сборки, содержащую определения доступных типов, описанных в сборке.
/unregister или /u Отменяет регистрацию создаваемых классов, содержащихся в assemblyFile. Если этот параметр не указан, средство Regasm.exe регистрирует создаваемые классы в сборке.
/verbose Включает режим подробного протоколирования. Если указан параметр /tlb, на экран выводится список всех сборок, на которые ссылается эта сборка, и для которых требуется создать библиотеку типов.
/? или /help Отображает синтаксис команд и параметров программы.

Примечание

В параметрах командной строки средства Regasm.exe прописные и строчные буквы не различаются. Достаточно указать начало параметра, позволяющее однозначно его определить. Например, /n эквивалентен /nologo , а /t:outfile.tlb эквивалентен /tlb:outfile.tlb.

Примечания

Можно не вносить изменения непосредственно в реестр, а создать REG-файл с записями реестра при помощи параметра /regfile. Чтобы внести изменения в реестр компьютера, импортируйте REG-файл в реестр с помощью редактора реестра (средства Regedit.exe). REG-файл не содержит обновлений реестра, которые могут выполняться пользовательскими функциями реестра. Параметр /regfile порождает записи реестра только для управляемых классов. Он не создает записи для объектов TypeLibID и InterfaceID.

Если задан параметр /tlb, средство Regasm.exe создает и регистрирует библиотеку типов, описывающую типы, которые содержатся в сборке. Regasm.exe помещает созданные библиотеки типов в текущий рабочий каталог или в каталог выходных файлов. Если сборка ссылается на другие сборки, то при создании библиотеки ее типов, возможно, будет создано сразу несколько библиотек типов. Библиотека типов позволяет предоставлять сведения о типах средствам разработки, таким как Visual Studio. Не используйте параметр /tlb, если регистрируемая сборка была создана программой импорта библиотек типов (Tlbimp.exe). Невозможно экспортировать библиотеку типов из сборки, которая была импортирована из библиотеки типов. Параметр /tlb дает тот же результат, что и программа экспорта библиотек типов (Tlbexp.exe) и Regasm.exe, за исключением того, что Tlbexp.exe не регистрирует создаваемые библиотеки типов. Если для регистрации библиотеки типов вы используете параметр /tlb, для отмены регистрации можно использовать параметр /tlb с параметром /unregister. При указании обоих параметров будет отменена регистрация библиотеки типов и записей интерфейса, что может существенно очистить реестр.

При регистрации сборки для использования в COM средство Regasm.exe добавляет записи в реестр локального компьютера. Точнее, в этом случае создаются зависящие от версии разделы реестра, которые позволяют запускать на одном компьютере несколько версий одной сборки одновременно. Когда сборка регистрируется в первый раз, создается один раздел верхнего уровня для сборки и уникальный подраздел для конкретной версии. При регистрации каждой новой версии сборки Regasm.exe создает подраздел для этой новой версии.

Например, предположим, что вы регистрируете управляемый компонент myComp.dll версии 1.0.0.0 для использования в COM. Позже вы регистрируете myComp.dll версии 2.0.0.0. Вы определяете, что все клиентские приложения COM на компьютере используют myComp.dll версии 2.0.0.0 и решаете отменить регистрацию myComponent.dll версии 1.0.0.0. Эта схема реестра позволяет отменить регистрацию myComp.dll версии 1.0.0.0, поскольку удаляется только подраздел версии 1.0.0.0.

Зарегистрировав сборку с помощью средства Regasm.exe, можно установить ее в глобальном кэше сборок, тогда ее сможет активировать любой COM-клиент. Если сборку будет активировать только одно приложение, ее можно поместить в каталог этого приложения. Использование параметра /codebase является альтернативой использованию глобального кэша сборок; Однако расположение сборки во время регистрации записывается глобально, и при перемещении сборки активация завершится ошибкой. Если сборка не найдена с помощью проверки, параметр /codebase загрузит сборку в контексте загрузки из, который содержит дополнительные рекомендации, описанные в .Assembly.LoadFrom

Примеры

Следующая команда регистрирует все открытые классы, содержащиеся в библиотеке myTest.dll.

regasm myTest.dll

Следующая команда создает файл myTest.reg, который содержит все необходимые записи реестра. Эта команда не обновляет реестр.

regasm myTest.dll /regfile:myTest.reg

Следующая команда регистрирует все открытые классы, содержащиеся в myTest.dll, а также создает и регистрирует библиотеку типов myTest.tlb, в которой содержатся определения всех открытых типов, описанных в myTest.dll.

regasm myTest.dll /tlb:myTest.tlb

См. также