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