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
См. также
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по