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


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-файл, содержащий необходимые записи реестра. Указание этого параметра не приводит к внесению изменений в реестр. Этот параметр нельзя использовать с параметрами или /tlb параметрами/u.
/silent или /s Запрещает отображение сообщений об успешно выполненных операциях.
/tlb [: typeLibFile] Создает библиотеку типов из указанной сборки, содержащую определения доступных типов, описанных в сборке.
/unregister или /u Отменяет регистрацию создаваемых классов, содержащихся в assemblyFile. Если этот параметр не указан, средство Regasm.exe регистрирует создаваемые классы в сборке.
/verbose Задает подробный режим; отображает список всех ссылочных сборок, для которых необходимо создать библиотеку типов при указании /tlb параметра.
/? или /help Отображает синтаксис команд и параметров программы.

Примечание.

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

Замечания

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

При указании /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

См. также