Regasm exe как зарегистрировать библиотеку: Регистрация внешней библиотеки вручную для работы с интеграционным модулем в конфигурации на платформе 1С:Предприятие 7.7

Содержание

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

  • Статья
  • Чтение занимает 4 мин
  • Участники: 12

Были ли сведения на этой странице полезными?

Да Нет

Хотите оставить дополнительный отзыв?

Отзывы будут отправляться в корпорацию Майкрософт. Нажав кнопку «Отправить», вы разрешаете использовать свой отзыв для улучшения продуктов и служб Майкрософт. Политика конфиденциальности.

Отправить

В этой статье

Средство регистрации сборки считывает метаданные сборки и добавляет в реестр необходимые записи, что позволяет 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 загрузит сборку в контексте, расположенном в загрузе, с дополнительными соображениями, описанными в разделе .

Примеры

Следующая команда регистрирует все открытые классы, содержащиеся в библиотеке 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

См. также

Регистрация сборок в COM — .NET Framework

  • Статья
  • Чтение занимает 2 мин
  • Участники: 11

Были ли сведения на этой странице полезными?

Да Нет

Хотите оставить дополнительный отзыв?

Отзывы будут отправляться в корпорацию Майкрософт. Нажав кнопку «Отправить», вы разрешаете использовать свой отзыв для улучшения продуктов и служб Майкрософт. Политика конфиденциальности.

Отправить

В этой статье

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

Управляемый компонент необходимо регистрировать в реестре Windows до того, как он будет активироваться из COM-клиента. В следующей таблице показаны разделы, которые программа Regasm.exe обычно добавляет в реестр Windows. (000000 указывает фактическое значение GUID.)

Идентификатор GUID Описание Раздел реестра
CLSID Идентификатор класса HKEY_CLASSES_ROOT\CLSID\{000…000}
IID Идентификатор интерфейса HKEY_CLASSES_ROOT\Interface\{000…000}
LIBID Идентификатор библиотеки HKEY_CLASSES_ROOT\TypeLib\{000…000}
ProgID Программный идентификатор HKEY_CLASSES_ROOT\000…000

В ХККР\КЛСИД\ {0000… 0000}, в качестве значения по умолчанию устанавливается идентификатор ProgID класса, а также добавляются два новых именованных значения, класс и сборка. Среда выполнения считывает Assembly из реестра и передает его в средство определения сборок среды выполнения. Средство определения сборок пытается найти сборку по таким сведениям о ней, как имя и номер версии. Средство определения сборок может находить сборки в следующих расположениях:

  • Глобальный кэш сборок (для сборок со строгим именем).

  • В каталоге приложения. Сборки, загруженные по пути приложения, доступны только из этого приложения.

  • По пути к файлу, указанному в параметре /codebase программы Regasm.exe.

Regasm.exe также создает ключ InProcServer32 в ХККР\КЛСИД\ {0000… 0000} Key. В качестве значения по умолчанию этому разделу присваивается имя библиотеки DLL, которая инициализирует общеязыковую среду выполнения (Mscoree.dll).

Проверка записей реестра

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

В подразделе InprocServer32 вместо традиционной библиотеки типов COM указывается ссылка на библиотеку Mscoree.dll. Это указывает на то, что общеязыковая среда выполнения создает объект.

См. также

Регистрация компоненты — SendToLocalHost Component


Инструменты .NET Framework

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

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

regasm assemblyFile [options]
 Параметры

Параметр

Описание

файл_сборки

Сборка, которая должна быть зарегистрирована в COM.

Параметр

Описание

/codebase

Создает в реестре запись Codebase. Запись Codebase указывает путь к файлу сборки, которая не установлена в глобальном кэше сборок. Не следует указывать этот параметр, если впоследствии будет установлена сборка, регистрируемая в глобальном кэше сборок. Аргумент файл_сборки, который задается с использованием параметра /codebase, должен представлять собой строго именованную сборку.

/registered

Указывает, что это средство будет ссылаться только на библиотеки типов, которые уже были зарегистрированы.

/asmpath:directory

Задает каталог, содержащий ссылки на сборки. Должен использоваться с использованием параметра /regfile.

/nologo

Отключает отображение эмблемы Майкрософт при запуске.

/regfile [:регистрационный_файл]

Создает REG-файл для сборки, содержащий необходимые записи реестра. Указание этого параметра в командной строке не приводит к внесению изменений в реестр. Этот параметр нельзя использовать с параметрами /u или /tlb.

/silent или /s

Запрещает отображение сообщений об успешно выполненных операциях.

/tlb [:файл_библиотеки_типа]

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

/unregister или /u

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

/verbose

Включает вывод сообщений. При использовании вместе с параметром /tlb на экран выводится список сборок, на которые ссылается указанная сборка и для которых требуется создать библиотеку типов.

/? или /help

Отображает синтаксис команды и параметры программы.

Примечание.

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

 Заметки

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

Если задан параметр /tlb, программа Regasm.exe создает и регистрирует библиотеку типов, описывающую типы, которые содержатся в сборке. Regasm.exe помещает созданные библиотеки типов в текущий рабочий каталог или в каталог, указанный для выходных файлов. Создание библиотеки типов для сборки, ссылающейся на другие сборки, может потребовать одновременного создания нескольких библиотек типов. Библиотеку типов можно использовать для предоставления сведений о типах средствам разработки программ, таким как Visual Studio 2005. Не следует использовать параметр /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-клиент мог активировать ее. Если использовать сборку будет только одно приложение, ее можно поместить в каталог этого приложения.

 Примеры

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

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

regasm myTest.dll /regfile:myTest.reg

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

regasm myTest.dll /tlb:myTest.tlb

Регистрация Dll, написанной на C #, на компьютере с Windows Server

Я наконец, кажется, заставил это работать после того, как попробовал всевозможные методы, поэтому я не уверен, что это все, что вам нужно сделать, но, надеюсь, это может помочь кому-то в будущем.

Во-первых, Visual Studio 2013 Express не включает «проекты установки», поэтому вы не можете создавать в нем пакеты развертывания для использования при установке проекта на других машинах, поэтому вам придется делать это вручную.

Тогда вам также понадобится тот же самый .Net framework на вашем целевом компьютере, который вы использовали для написания своего проекта — это не проблема, если вы думаете об этом, но проверка работы.

Поэтому я скопировал файлы .dll, .pdb & .tlb из папки проектов Visual Studio bin\Debug на моем компьютере разработки и поместил их в папку на сервере C: диска.

Затем откройте командную строку от имени администратора (щелкнув правой кнопкой мыши значок в меню «Пуск» и выбрав «Запуск от имени администратора». Затем перейдите в командной строке к папке .Net на конечном ПК, используя папку cd C:\Windows\Microsoft.NET\Framework\v4.0.30319, которую вы найдете «

Оказавшись там, я запустил regasm /codebase "C:\MyClassLibraryFolder\MyClassLibrary.dll" и regasm /tlb /codebase "C:\MyClassLibraryFolder\MyClassLibrary.dll", и это, казалось, все зарегистрировало и позволило моему проекту VBA работать на сервере с использованием MyClassLibrary.

Из моего чтения regasm установлен с .Net 4+ (и если он был найден в этой папке на сервере), а gacutil, похоже, больше не включен, и когда я попытался запустить его на сервере, скопировав его, это не показалось ничего не делать.

Если это не сработает, я также выполнил эти команды, чтобы они могли быть добавлены к выигрышу regtlibv12.exe, найденному на Библиотека типов регистров x64 regtlib, в которой также упоминается Regasm /tlb

И эта ссылка аналогична Использование библиотеки классов C # на не- Машина для разработки

Для получения информации о regasm — http://msdn.microsoft.com/en-us/library/tzat5yw6%28v=vs.110%29.aspx.

Надеюсь это поможет.

Спасибо всем за ваши предложения.

person Tristan    schedule 01.12.2013

Не удалось получить фабрику класса com: не работает обмен

Спасибо все за ответы, но ничего не вышло. Пытался сегодня зарегистрировать с помощью regasm.exe и через командную строку и через VS2013, но ничего не получилось. В командной строке пишет «regasm» не является внутренней или внешней командой, исполняемой программой или пакетным файлом. В VS2013 — The term ‘regasm’ is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
Мне нужно установить regasm.exe? Просто читал что он с VS устанавливается или с Windows SDK. Буду благодарен за помощь.
Добавлено через 29 минут
Поковырялся еще в интернете нашел : http://support.microsoft.com/kb/908268/ru
Указал полностью путь во фреймворке и положил туда же библиотеку, чтоб путь не прописывать. Итог:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\regAsm.exe Interop.SterlingLib.dll
Microsoft .NET Framework Assembly Registration Utility 4.0.30319.18408
для Microsoft .NET Framework 4.0.30319.18408
(C) Корпорация Майкрософт (Microsoft Corporation).
regAsm.exe : RegAsm : error RA0000 : Сбой при загрузке ‘C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Interop.Ste rlingLib.dll’ из-за недопустимой сборки .NET
Пока решения не нашел.
Добавлено через 36 минут

Сообщение от MaxValue если библиотека фреймворковская то через regasm регистрировать надо. и под админом а что делать, если библиотека не фреймворковская и как это определить?
Добавлено через 36 минут
Попробовал по совету этой статьи еще сделать http://support.microsoft.com/kb/249873/ru :
В итоге одна выходит одна из ошибок описанная в этой статье:
Модуль «%1″ загружен, но точка входа %2 не найдена.\n\nПроверьте, что » %1″ является правильным файлом DLL или OCX и повторите попытку.
Расшифровка данного сообщения:
Средству Regsvr32.exe не удалось найти необходимую точку входа модуля, указанного в командной строке. Это может произойти при неправильном экспорте точек входа из модуля или если модуль не является DLL- либо OCX-файлом.
Пожалуйста, дайте следующую подсказку в каком направлении нужно двигаться, чтоб можно было запустить данное приложение Спасибо.

Библиотека уведомлений не зарегистрирована программа работать неправильно

После установки различных программ или игр можно столкнуться с ситуацией, когда при включении возникает ошибка «Запуск программы произвести невозможно, так как требуемой DLL нет в системе». Несмотря на то, что ОС семейства Windows обычно регистрируют библиотеки в фоновом режиме, после того, как вы скачаете и поместите ваш DLL файл в соответствующее место, ошибка все равно возникает, и система просто его «не видит». Чтобы это исправить, нужно зарегистрировать библиотеку. Как это можно сделать, будет рассказано далее в этой статье.

Варианты решения проблемы

Имеется несколько методов, позволяющих устранить данную проблему. Рассмотрим каждый из них подробнее.

Способ 1: OCX/DLL Manager

OCX/DLL Manager – это маленькая программа которая может помочь зарегистрировать библиотеку или файл OCX.

Для этого вам нужно будет:

  1. Нажать на пункт меню «Register OCX/DLL».
  2. Выбрать тип файла, который будете регистрировать.
  3. При помощи кнопки «Browse» указать местоположение DLL.
  4. Нажать на кнопку «Register» и программа сама зарегистрирует файл.

OCX/DLL Manager также умеет отменять регистрацию библиотеки, для этого понадобится выбрать в меню пункт «Unregister OCX/DLL» и в последствии проделать все те же операции, как и в первом случае. Функция отмены может вам понадобиться для сравнения результатов при активированном файле и при отключенном, а также в процессе удаления некоторых компьютерных вирусов.

В процессе регистрации, система может выдать вам ошибку, говорящую о том, что требуются права администратора. В таком случае, нужно запустить программу нажав на неё правой кнопкой мыши, и выбрать «Запуск от имени администратора».

Способ 2: Меню «Выполнить»

Можно зарегистрировать DLL, используя команду «Выполнить» в стартовом меню операционной системы Windows. Для этого нужно будет произвести следующие действия:

  1. Нажать клавиатурную комбинацию «Windows + R» или выбрать пункт «Выполнить» из меню «Пуск».

Ввести имя программы, которая будет регистрировать библиотеку — regsvr32.exe, и путь, по которому размещен файл. В итоге должно получиться так:

где dllname — это имя вашего файла.

Этот пример подойдёт вам в том случае, если операционная система установлена на диск С. Если она находится в другом месте, то нужно будет поменять букву диска или воспользоваться командой:

В таком варианте программа сама находит папку где у вас установлена ОС и запускает регистрацию указанного DLL файла.

В случае с 64-разрядной системой у вас будет две программы regsvr32 — одна находится в папке:

и вторая по пути:

Это разные файлы, которые используются раздельно для соответствующих ситуаций. Если у вас 64-битная ОС, а файл DLL 32-битный, тогда сам файл библиотеки должен быть помещен в папку:

и команда будет выглядеть уже так:

  • Нажмите «Enter» или кнопку «OK»; система выдаст вам сообщение о том, успешно или нет была зарегистрирована библиотека.
  • Способ 3: Командная строка

    Регистрация файла через командную строку не сильно отличается от второго варианта:

    1. Выберите команду «Выполнить» в меню «Пуск».
    2. Впишите в открывшемся поле для ввода cmd.
    3. Нажмите «Enter».

    Перед вами появится окно, в котором нужно будет вводить те же команды, что и во втором варианте.

    Надо отметить, что у окна командной строки имеется функция вставки скопированного текста (для удобства). Найти это меню можно, нажав правой кнопкой на пиктограмме в левом верхнем углу.

    Способ 4: Открыть с помощью

    1. Откройте меню файла, который будете регистрировать, нажав по нему правой кнопкой мыши.
    2. Выберите «Открыть с помощью» в появившемся меню.

    Нажимаете «Обзор» и выберете программу regsvr32.exe из следующей директории:

    или в случае, если вы работаете в 64-битной системе, а файл DLL 32-разрядный:

  • Откройте DLL с помощью этой программы. Система выдаст сообщение об успешной регистрации.
  • Возможные ошибки

    «Файл не совместим с установленной версией Windows» — это означает, что вы, скорее всего, пытаетесь зарегистрировать 64-разрядную DLL в 32-битной системе или наоборот. Воспользуйтесь соответствующей командой, описанной во втором способе.

    «Точка входа не найдена» — не все библиотеки DLL можно зарегистрировать, некоторые из них просто не поддерживают команду DllRegisterServer. Также, возникновение ошибки может быть вызвано тем, что файл уже зарегистрирован системой. Существуют сайты, распространяющие файлы, которые в реальности не являются библиотеками. В таком случае, естественно, зарегистрировать ничего не выйдет.

    В заключение нужно сказать, что суть всех предложенных вариантов одна и та же — это просто разные методы запуска команды регистрации — кому как удобнее.

    Отблагодарите автора, поделитесь статьей в социальных сетях.

    Пользователи спрашивают о том, как зарегистрировать dll файл в Windows 7 и 8. Обычно после того, как столкнулись с ошибками наподобие «Запуск программы невозможен, так как нужная dll отсутствует на компьютере». Об этом и поговорим.

    На самом деле, регистрация библиотеки в системе не такая уж и сложная задача (покажу целых три вариации одного способа) — по сути, необходим лишь один шаг. Единственное обязательное требование — наличие у вас прав администратора Windows.

    Однако есть некоторые нюансы — например, даже успешная регистрация DLL не обязательно избавляет вас от ошибки «библиотека отсутствует на компьютере», а появление ошибки RegSvr32 с сообщением о том, что модуль не совместим с версией Windows на этом компьютере или точка входа DLLRegisterServer не найдена, не говорит о том, что вы что-то делаете не так (о чем это говорит разъясню в конце статьи).

    Три способа регистрации DLL в ОС

    Описывая дальнейшие шаги, я исхожу из того, что вы нашли, куда нужно скопировать вашу библиотеку и DLL уже лежит в папку System32 или SysWOW64 (а возможно, где-то еще, если ей там следует находиться).

    Примечание: ниже будет описано, как зарегистрировать DLL библиотеку с помощью regsvr32.exe, однако обращаю ваше внимание на то, что если у вас 64-разрядная система, то у вас есть два regsvr32.exe — один в папке C:WindowsSysWOW64, второй — C:WindowsSystem32. И это разные файлы, причем 64-бит находится в папке System32. Рекомендую в каждом из способов использовать полный путь к regsvr32.exe, а не просто имя файла, как у меня показано в примерах.

    Первый способ описывается в Интернете чаще других и состоит в следующем:

    • Нажмите клавиши Windows + R или в меню Пуск Windows 7 выберите пункт «Выполнить» (если, конечно, у вас включено его отображение).
    • Введите regsvr32.exe путь_к_файлу_dll
    • Нажмите Ок или Enter.

    После этого, если все прошло успешно вы должны будете увидеть сообщение о том, что библиотека была успешно зарегистрирована. Но, с большой вероятностью увидите другое сообщение — Модуль загружен, но точка входа DllRegisterServer не найдена и стоит проверить, что ваша DLL является правильным файлом (об этом, как я уже говорил, напишу позже).

    Второй способ состоит в запуске командной строки от имени администратора и ввода все той же команды из предыдущего пункта.

    • Запустите командную строку от имени Администратора. В Windows 8 можно нажать клавиши Win+X, а затем выбрать нужный пункт меню. В Windows 7 вы можете найти командную строку в меню Пуск, кликнуть по ней правой кнопкой мыши и выбрать пункт «Запуск от имени администратора».
    • Введите команду regsvr32.exe путь_к_библиотеке_dll (пример вы можете видеть на скриншоте).

    Опять же, вероятно, что вам не удастся зарегистрировать DLL в системе.

    И последний способ, который также может пригодиться в некоторых случаях:

    • Кликните правой кнопкой мыши по DLL, которую нужно зарегистрировать и выберите пункт меню «Открыть с помощью».
    • Нажмите «Обзор» и найдите файл regsvr32.exe в папке Windows/System32 или Windows/SysWow64, откройте DLL с помощью него.

    Суть всех описанных способов зарегистрировать DLL в системе одна и та же, просто несколько разные способы запуска одной и той же команды — кому что удобнее. А теперь о том, почему у вас ничего не получается.

    Почему не удается зарегистрировать DLL

    Итак, у вас отсутствует какой-то файл DLL, из-за чего при запуске игры или программы вы видите ошибку, вы скачали этот файл из Интернета и пробуете зарегистрировать, но либо точка входа DllRegisterServer, либо модуль не совместим с текущей версией Windows, а может и что-то еще, то есть регистрация DLL невозможно.

    Почему это происходит (далее будет и про то, как это исправить):

    • Не все файлы DLL предназначены для того, чтобы их регистрировали. Для того, чтобы его можно было зарегистрировать данным способом, он должен иметь поддержку той самой функции DllRegisterServer. Иногда ошибка бывает также вызвана тем, что библиотека уже зарегистрирована.
    • Некоторые сайты, предлагающие скачать DLL, содержат по факту, файлы-пустышки с искомым вами именем и их невозможно зарегистрировать, так как на самом деле это не библиотека.

    А теперь о том, как это исправить:

    • Если вы программист и регистрируете свою DLL, попробуйте regasm.exe
    • Если вы пользователь и у вас что-то не запускается с сообщением о том, что DLL отсутствует на компьютере — поищите в Интернете, что это за файл, а не где его скачать. Обычно, зная это, вы можете скачать официальный установщик, который установит оригинальные библиотеки и зарегистрирует их в системе — например, для всех файлов с именем, начинающегося с d3d достаточно поставить DirectX с официального сайта Microsoft, для msvc — одну из версий Visual Studio Redistributable. (А если не запускается какая-то игра с торрента, то загляните-ка в отчеты антивируса, он мог удалить нужные DLL, это часто бывает с некоторыми модифицированными библиотеками).
    • Обычно, вместо регистрации DLL срабатывает размещение файла в одной папке с исполняемым файлом exe, который требует эту библиотеку.

    На этом завершаю, надеюсь, что-то стало более ясно, чем было.

    Проверить регистрацию dll. Несколько способов регистрации библиотеки dll в Windows

    После установки различных программ или игр можно столкнуться с ситуацией, когда при включении возникает ошибка «Запуск программы произвести невозможно, так как требуемой DLL нет в системе». Несмотря на то, что ОС семейства Windows обычно регистрируют библиотеки в фоновом режиме, после того, как вы скачаете и поместите ваш DLL файл в соответствующее место, ошибка все равно возникает, и система просто его «не видит». Чтобы это исправить, нужно зарегистрировать библиотеку. Как это можно сделать, будет рассказано далее в этой статье.

    Имеется несколько методов, позволяющих устранить данную проблему. Рассмотрим каждый из них подробнее.

    Способ 1: OCX/DLL Manager

    OCX/DLL Manager – это маленькая программа которая может помочь зарегистрировать библиотеку или файл OCX.

    Для этого вам нужно будет:

    1. Нажать на пункт меню «Register OCX/DLL» .
    2. Выбрать тип файла, который будете регистрировать.
    3. При помощи кнопки «Browse» указать местоположение DLL.
    4. Нажать на кнопку «Register» и программа сама зарегистрирует файл.

    OCX/DLL Manager также умеет отменять регистрацию библиотеки, для этого понадобится выбрать в меню пункт «Unregister OCX/DLL» и в последствии проделать все те же операции, как и в первом случае. Функция отмены может вам понадобиться для сравнения результатов при активированном файле и при отключенном, а также в процессе удаления некоторых компьютерных вирусов.

    В процессе регистрации, система может выдать вам ошибку, говорящую о том, что требуются права администратора. В таком случае, нужно запустить программу нажав на неё правой кнопкой мыши, и выбрать «Запуск от имени администратора» .

    Способ 2: Меню «Выполнить»

    Можно зарегистрировать DLL, используя команду «Выполнить» в стартовом меню операционной системы Windows. Для этого нужно будет произвести следующие действия:


    Способ 3: Командная строка

    Регистрация файла через командную строку не сильно отличается от второго варианта:

    1. Выберите команду «Выполнить» в меню «Пуск» .
    2. Впишите в открывшемся поле для ввода cmd .
    3. Нажмите «Enter» .

    Перед вами появится окно, в котором нужно будет вводить те же команды, что и во втором варианте.

    Надо отметить, что у окна командной строки имеется функция вставки скопированного текста (для удобства). Найти это меню можно, нажав правой кнопкой на пиктограмме в левом верхнем углу.

    Способ 4: Открыть с помощью


    Возможные ошибки

    «Файл не совместим с установленной версией Windows» — это означает, что вы, скорее всего, пытаетесь зарегистрировать 64-разрядную DLL в 32-битной системе или наоборот. Воспользуйтесь соответствующей командой, описанной во втором способе.

    «Точка входа не найдена» — не все библиотеки DLL можно зарегистрировать, некоторые из них просто не поддерживают команду DllRegisterServer. Также, возникновение ошибки может быть вызвано тем, что файл уже зарегистрирован системой. Существуют сайты, распространяющие файлы, которые в реальности не являются библиотеками. В таком случае, естественно, зарегистрировать ничего не выйдет.

    В заключение нужно сказать, что суть всех предложенных вариантов одна и та же — это просто разные методы запуска команды регистрации — кому как удобнее.

    При попытке запустить игру или приложение мы можем столкнуться с ошибками вида «точка входа dllregisterserver не найдена» или «запуск приложения невозможен, отсутствует.dll файл». Подобных вариаций может быть несколько, но суть одна: нужных библиотек нет вовсе или они не зарегистрированы. Итак, давайте разберемся, как задействовать библиотеку в операционной системе и что делать, если проблема не решилась.

    Описание ошибки

    Во время установки Windows и других сторонних программ, в системные папки распаковываются библиотеки – файлы.dll, которые являются средой исполнения программного кода для приложений. Не вдаваясь в подробности, это то, с помощью чего программы и игры работают. И в случаях, когда эти файлы не видит система, возникают ошибки.

    Причины возникновения

    Причинами появления данной проблемы может быть ряд событий:

    1. Заражение вирусом. Нежелательное ПО способно повредить и удалить библиотеки с компьютера. Для этого стоит проверить машину на вирусы и удалить их с жесткого диска.
    2. Ошибка программы установки. Как правило, поставщик программного обеспечения добавляет все необходимые системные файлы в установочный пакет для работы приложения. Но иногда разработчики забывают об этом. Итог – если на компьютере нет подходящих ресурсов (которые установились с другим приложением), ваша программа не запустится. Гораздо обиднее, если за данный софт вы заплатили круглую сумму.

      Внимание! В некоторых случаях программа установки сама предупреждает о необходимости скачать дополнительный контент для работы приложения. Например, для некоторых игр предлагается установить отдельно DirectX последней версии.

    3. Системная ошибка. По различным обстоятельствам, которые от нас не всегда зависят, Windows может потерять из виду некоторые.dll файлы. Причиной тому становятся неосторожные манипуляции с записями реестра.

    Способы регистрации библиотек

    Существует два способа добавления.dll файлов в реестр системы.

    С помощью командной строки

    Для этого потребуется выполнить следующие действия:


    С помощью окна «Выполнить»

    Способ в два клика:


    Почему не получается зарегистрировать.dll и как это исправить?

    Существует три причины неудачи при регистрации системных файлов:

    1. Библиотека уже зарегистрирована. В данном случае причина — сам файл, который поврежден или заражен вирусом.
    2. Регистрация невозможна. Файл.dll может просто оказаться пустышкой или быть несовместимым с версией и компонентами операционной системы.

      Внимание! Никогда не скачивайте файлы.dll с файлообменников и прочих подозрительных сайтов. Загружайте библиотеки только с официальных источников!

    3. Функция регистрации отсутствует. Некоторые библиотеки не предназначены для регистрации и попросту не имеют данной функции.

    Существует три способа для выхода из сложившегося положения:

    1. Скачайте официальный компонент системы с ресурса поставщика. Например, для файла xlive.dll нужно загрузить и установить пакет Microsoft Games for Windows, который можно скачать на сайте Microsoft.

      Совет! В случае возникновения подобной ситуации ищите где загрузить компонент системы (это будет подлинный сайт), а не отдельный файл.

    2. В случае, если вы разработчик и создали свою библиотеку, зарегистрируйте ее с помощью regasm.exe.
    3. Иногда для задействования.dll файла нужно переместить его в папку с приложением — в директорию, где хранится исполняющий файл.exe.

    Итак, мы рассмотрели ряд способов по регистрации библиотек в системе и ликвидации ошибки «точка входа dllregisterserver не найдена». Их должно хватить. Но если у вас уникальная ситуация или известен другой путь решения проблемы – поделитесь, пожалуйста, им в комментариях.

    Регистрация файлов с расширением *.dll и *.ocx

    Спойлер: Справка (нажмите, чтобы открыть)

    • DLL (от англ. Dynamic-Link Library – динамически подключаемая библиотека) – понятие операционной системы Microsoft Windows; динамическая библиотека, позволяющая многократное применение различными программными приложениями. K DLL иногда причисляют также элементы управления ActiveX и драйвера. В мире UNIX аналогичные функции выполняют т. н. shared objects («разделяемые объекты»). Формат файлов *.dll придерживается тех же соглашений, что и формат исполняемых файлов *.exe, сочетая код, таблицы и ресурсы.
    • ActiveX – название группы технологий, разработанных Microsoft для программирования компонентных объектных приложений на основе модели COM.
    • COM (сокр. от англ. Component Object Model) – модель компонентных объектов Microsoft, стандартный механизм, включающий интерфейсы, с помощью которых одни объекты предоставляют свои сервисы другим; является основой многих объектных технологий, в том числе OLE и ActiveX).
    • OLE (сокр. от англ. Object Linking and Embedding) – общее название (до 1996 г.) группы объектно-ориентированных технологий Microsoft на основе COM (OLE 1, OLE 2, OLE automation, OLE Database и др.).
    • ActiveX control – управляющий элемент ActiveX; введенное в 1996 г. Microsoft новое название независимых программируемых компонентов, ранее называемых OLE controls, OCXs, OLE custom controls; в отличие от последних позволяют работать с Internet.
    • OCX (сокр. от англ. OLE Custom eXtension) – перемещаемые элементы управления, OLE custom control, OLE control. Упрощенно можно сказать, что файлы *.ocx – это элементы управления ActiveX, выполняющие примерно те же функции, что и файлы *.dll.
    • OLE custom control – специализированный управляющий элемент OLE, OLE control.
    • OLE control – управляющие элементы OLE, программируемые компоненты-приложения с интерфейсом на базе OLE, позволяющим легко включать их в другие приложения; c 1996 г. называются ActiveX control. Синонимы: OCX, OLE custom control.
    __________________________

    Как зарегистрировать файлы *.dll и *.ocx ?

    Регистрация файлов *.dll и *.ocx производится с помощью сервера регистрации regsvr32.exe (дисковый адрес которого – \WINDOWS\system32).

    Рассмотрим способы регистрации:

    1). Нажмите Пуск – Выполнить…(или одновременно нажать кнопки win и r) – вводим – regsvr32_ имя_файла_ – OK.

    2). Нажмите Пуск – Выполнить… – Запуск программы – cmd – OK. Запустится интерпретатор команд cmd.exe(командная строка), после приглашения системы

    Код:

    C:\Documents and Settings\Имя_пользователя>

    введите regsvr32 _имя_файла, например,

    Код:

    Regsvr32 Koza.dll

    .

    3)Воспользоваться вот таким твиком,который добавляет в контексное меню DLL и OCX файлов пункты «Регистрация» и «Отмена регистрации»

    Код:

    Windows Registry Editor Version 5.00 @=»regsvr32.exe \»%1\»» @=»regsvr32.exe /u \»%1\»» @=»regsvr32.exe \»%1\»»


    Для удаления данной функции из контексного меню примените твик:

    Код:

    Windows Registry Editor Version 5.00 [-HKEY_CLASSES_ROOT\dllfile\Shell] [-HKEY_CLASSES_ROOT\dllfile\Shell\Регистрация] [-HKEY_CLASSES_ROOT\dllfile\Shell\Регистрация\command] @=»regsvr32.exe \»%1\»» [-HKEY_CLASSES_ROOT\dllfile\Shell\Отмена регистрации] [-HKEY_CLASSES_ROOT\dllfile\Shell\Отмена регистрации\command] @=»regsvr32.exe /u \»%1\»» [-HKEY_CLASSES_ROOT\ocxfile\Shell] [-HKEY_CLASSES_ROOT\ocxfile\Shell\Регистрация] [-HKEY_CLASSES_ROOT\ocxfile\Shell\Регистрация\command] @=»regsvr32.exe \»%1\»»

    4). Если вы пользуетесь файловым менеджером Total Commander, то можно выполнить регистрацию файлов *.dll и *.ocx с помощью командной строки Total Commander.

    ________________________

    Параметры regsvr32:

    Regsvr32: ] DLL-файл

    /u — Отменяет регистрацию DLL
    /s — «Тихий» режим; окна сообщения не отображаются
    /i — Вызывает DllInstall, передавая параметром необязательную строку_команд,
    при использовании с ключом /u вызывает DllUnInstall
    /n — Не вызывает DllRegisterServer; это может использоваться с ключом /i

    Пользователи спрашивают о том, как зарегистрировать dll файл в Windows 7 и 8. Обычно после того, как столкнулись с ошибками наподобие «Запуск программы невозможен, так как нужная dll отсутствует на компьютере». Об этом и поговорим.

    На самом деле, регистрация библиотеки в системе не такая уж и сложная задача (покажу целых три вариации одного способа) — по сути, необходим лишь один шаг. Единственное обязательное требование — наличие у вас прав администратора Windows.

    Однако есть некоторые нюансы — например, даже успешная регистрация DLL не обязательно избавляет вас от ошибки «библиотека отсутствует на компьютере», а появление ошибки RegSvr32 с сообщением о том, что модуль не совместим с версией Windows на этом компьютере или точка входа DLLRegisterServer не найдена, не говорит о том, что вы что-то делаете не так (о чем это говорит разъясню в конце статьи).

    Три способа регистрации DLL в ОС

    Описывая дальнейшие шаги, я исхожу из того, что вы нашли, куда нужно скопировать вашу библиотеку и DLL уже лежит в папку System32 или SysWOW64 (а возможно, где-то еще, если ей там следует находиться).

    Примечание: ниже будет описано, как зарегистрировать DLL библиотеку с помощью regsvr32.exe, однако обращаю ваше внимание на то, что если у вас 64-разрядная система, то у вас есть два regsvr32.exe — один в папке C:\Windows \SysWOW64, второй — C:\Windows\System32. И это разные файлы, причем 64-бит находится в папке System32. Рекомендую в каждом из способов использовать полный путь к regsvr32.exe, а не просто имя файла, как у меня показано в примерах.

    Первый способ описывается в Интернете чаще других и состоит в следующем:

      Нажмите клавиши Windows + R или в меню Пуск Windows 7 выберите пункт «Выполнить» (если, конечно, у вас включено его отображение).Введите regsvr32.exe путь_к_файлу_dllНажмите Ок или Enter.

    После этого, если все прошло успешно вы должны будете увидеть сообщение о том, что библиотека была успешно зарегистрирована. Но, с большой вероятностью увидите другое сообщение — Модуль загружен, но точка входа DllRegisterServer не найдена и стоит проверить, что ваша DLL является правильным файлом (об этом, как я уже говорил, напишу позже).

    Второй способ состоит в запуске командной строки от имени администратора и ввода все той же команды из предыдущего пункта.

      Запустите командную строку от имени Администратора. В Windows 8 можно нажать клавиши Win+X, а затем выбрать нужный пункт меню. В Windows 7 вы можете найти командную строку в меню Пуск, кликнуть по ней правой кнопкой мыши и выбрать пункт «Запуск от имени администратора».Введите команду regsvr32.exe путь_к_библиотеке_dll (пример вы можете видеть на скриншоте).

    Опять же, вероятно, что вам не удастся зарегистрировать DLL в системе.

    И последний способ, который также может пригодиться в некоторых случаях:

      Кликните правой кнопкой мыши по DLL, которую нужно зарегистрировать и выберите пункт меню «Открыть с помощью».Нажмите «Обзор» и найдите файл regsvr32.exe в папке Windows/System32 или Windows/SysWow64, откройте DLL с помощью него.

    Суть всех описанных способов зарегистрировать DLL в системе одна и та же, просто несколько разные способы запуска одной и той же команды — кому что удобнее. А теперь о том, почему у вас ничего не получается.

    Почему не удается зарегистрировать DLL

    Responsive2{width:300px;height:300px}@media(min-width: 500px){.responsive2{width:336px;height:280px}}

    Итак, у вас отсутствует какой-то файл DLL, из-за чего при запуске игры или вы видите ошибку, вы скачали этот файл из Интернета и пробуете зарегистрировать, но либо точка входа DllRegisterServer, либо модуль не совместим с текущей версией Windows, а может и что-то еще, то есть регистрация DLL невозможно.

      Не все файлы DLL предназначены для того, чтобы их регистрировали. Для того, чтобы его можно было зарегистрировать данным способом, он должен иметь поддержку той самой функции DllRegisterServer. Иногда ошибка бывает также вызвана тем, что библиотека уже зарегистрирована. Некоторые сайты, предлагающие скачать DLL, содержат по факту, файлы-пустышки с искомым вами именем и их невозможно зарегистрировать, так как на самом деле это не библиотека.

    А теперь о том, как это исправить:

      Если вы программист и регистрируете свою DLL, попробуйте regasm. exeЕсли вы пользователь и у вас что-то не запускается с сообщением о том, что DLL отсутствует на компьютере — поищите в Интернете, что это за файл, а не где его скачать. Обычно, зная это, вы можете скачать официальный установщик, который установит оригинальные библиотеки и зарегистрирует их в системе — например, для всех файлов с именем, начинающегося с d3d достаточно поставить DirectX с официального сайта , для msvc — одну из версий Visual Studio Redistributable. (А если не запускается какая-то игра с торрента, то загляните-ка в отчеты антивируса, он мог удалить нужные DLL, это часто бывает с некоторыми модифицированными библиотеками).Обычно, вместо регистрации DLL срабатывает размещение файла в одной папке с исполняемым файлом exe, который требует эту библиотеку.

    На этом завершаю, надеюсь, что-то стало более ясно, чем было.

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

    • Статья
    • 4 минуты на чтение
    • 12 участников

    Полезна ли эта страница?

    Да Нет

    Любая дополнительная обратная связь?

    Отзыв будет отправлен в Microsoft: при нажатии кнопки отправки ваш отзыв будет использован для улучшения продуктов и услуг Microsoft.Политика конфиденциальности.

    Представлять на рассмотрение

    В этой статье

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

    Чтобы запустить инструмент, используйте командную строку Visual Studio Developer или Visual Studio Developer PowerShell.

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

    Синтаксис

      файл сборки regasm [опции]
      

    Параметры

    Параметр Описание
    Напильник монтажный Сборка для регистрации в COM.
    Опция Описание
    /кодовая база Создает запись Codebase в реестре. Запись Codebase указывает путь к файлу сборки, которая не установлена ​​в глобальном кэше сборок. Не указывайте этот параметр, если впоследствии вы будете устанавливать регистрируемую сборку в глобальный кэш сборок. Настоятельно рекомендуется, чтобы аргумент AssemblyFile , указанный с параметром /codebase , был сборкой со строгим именем.
    /зарегистрировано Указывает, что этот инструмент будет обращаться только к уже зарегистрированным библиотекам типов.
    /asmpath:каталог Указывает каталог, содержащий ссылки на сборки. Должен использоваться с параметром /regfile .
    /нолого Подавляет отображение баннера запуска Microsoft.
    /regfile [ : regFile ] Создает указанный файл .reg-файл для сборки, который содержит необходимые записи реестра. Указание этого параметра не изменяет реестр. Этот параметр нельзя использовать с параметрами /u или /tlb .
    /бесшумный или Подавляет отображение сообщений об успешном выполнении.
    /tlb [ : typeLibFile ] Создает библиотеку типов из указанной сборки, содержащую определения доступных типов, определенных в сборке.
    /отменить регистрацию или /u Отменяет регистрацию создаваемых классов, найденных в файле сборки . Если этот параметр не указан, программа Regasm.exe регистрирует создаваемые классы в сборке.
    /подробный Задает подробный режим; отображает список всех связанных сборок, для которых необходимо создать библиотеку типов, если указано с параметром /tlb .
    /? или /помощь Отображает синтаксис команды и параметры инструмента.

    Примечание

    Параметры командной строки Regasm.exe нечувствительны к регистру. Вам нужно только предоставить достаточное количество опций, чтобы однозначно идентифицировать их. Например, /n эквивалентно /nlogo и /t: outfile.tlb эквивалентно /tlb: outfile.tlb .

    Замечания

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

    При указании параметра /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.Загрузить из.

    Примеры

    Следующая команда регистрирует все общедоступные классы, содержащиеся в 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
      

    См. также

    Регистрация сборок с помощью COM — .NET Framework

    • Статья
    • 2 минуты на чтение
    • 11 участников

    Полезна ли эта страница?

    Да Нет

    Любая дополнительная обратная связь?

    Отзыв будет отправлен в Microsoft: при нажатии кнопки отправки ваш отзыв будет использован для улучшения продуктов и услуг Microsoft.Политика конфиденциальности.

    Представлять на рассмотрение

    В этой статье

    Вы можете запустить средство командной строки под названием средство регистрации сборки (Regasm.exe), чтобы зарегистрировать или отменить регистрацию сборки для использования с COM. Regasm.exe добавляет информацию о классе в системный реестр, чтобы COM-клиенты могли прозрачно использовать класс .NET Framework.Класс RegistrationServices обеспечивает эквивалентную функциональность.

    Управляемый компонент должен быть зарегистрирован в реестре Windows, прежде чем его можно будет активировать из COM-клиента. В следующей таблице показаны разделы, которые Regasm.exe обычно добавляет в реестр Windows. (000000 указывает фактическое значение GUID.)

    GUID Описание Ключ реестра
    CLSID Идентификатор класса HKEY_CLASSES_ROOT\CLSID\{000…000}
    Идентификационный номер Идентификатор интерфейса HKEY_CLASSES_ROOT\Интерфейс\{000…000}
    ЛИБИД Идентификатор библиотеки HKEY_CLASSES_ROOT\TypeLib\{000…000}
    Идентификатор программы Программный идентификатор HKEY_CLASSES_ROOT\000…000

    В ключе HKCR\CLSID\{0000…0000} по умолчанию устанавливается значение ProgID класса, и добавляются два новых именованных значения, Class и Assembly.Среда выполнения считывает значение сборки из реестра и передает его сопоставителю сборки среды выполнения. Сопоставитель сборок пытается найти сборку на основе сведений о сборке, таких как имя и номер версии. Чтобы распознаватель сборок мог найти сборку, сборка должна находиться в одном из следующих расположений:

    .
    • Глобальный кэш сборок (должна быть сборка со строгим именем).

    • В каталоге приложений. Сборки, загруженные из пути приложения, доступны только из этого приложения.

    • По пути к файлу, указанному в параметре /codebase , к Regasm.exe.

    Regasm.exe также создает ключ InProcServer32 в ключе HKCR\CLSID\{0000…0000}. Значением по умолчанию для ключа установлено имя библиотеки DLL, которая инициализирует общеязыковую среду выполнения (Mscoree.dll).

    Проверка записей реестра

    COM-взаимодействие предоставляет стандартную реализацию фабрики классов для создания экземпляра любого класса .NET Framework.Клиенты могут вызвать DllGetClassObject в управляемой библиотеке DLL, чтобы получить фабрику классов и создать объекты, как и в случае с любым другим компонентом COM.

    Для подраздела InprocServer32 ссылка на Mscoree.dll появляется вместо традиционной библиотеки типов COM, чтобы указать, что среда CLR создает управляемый объект.

    См. также

    C# Utilities — regasm.exe

    regasm.exe

    Инструмент сборки для регистрации
    Чтобы зарегистрировать или отменить регистрацию файла .NET необходимо запустить инструмент командной строки под названием Registration Assembly Tool (Regasm.exe).
    Regasm.exe добавляет информацию о классе в реестр, чтобы разрешить COM-клиентам доступ к классам .NET.
    Класс RegistrationServices предоставляет эквивалентные функции API.
    После регистрации класса COM-клиент может использовать его как COM-компонент.
    Регистрация класса и регистрация библиотеки типов.


    Местоположение файла

    .NET Framework 2.0, 3.0 и 3.5 используют один и тот же RegAsm.exe, который находится в папке .NET Framework V2.0.

     C:\WINNT\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe 
    C:\Windows\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe

    .NET Framework 4.0 использует новый RegAsm .exe, который находится в папке .NET Framework V4.0.

     C:\WINNT\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe 
    C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe

    Параметры командной строки
    0 /
  • Параметр tlb — этот параметр можно использовать для создания (и регистрации) соответствующего файла tlb для данной сборки
    Regasm.exe помещает сгенерированные библиотеки типов в текущий рабочий каталог или каталог, указанный для выходного файла.

     regasm myBetterFile.dll /tlb:myTest.tlb 

    /codebase — вам нужно использовать это, если вы хотите, чтобы ваша dll была зарегистрирована локально и не устанавливалась в GAC.

     regasm myBetterFile.dll /codebase 

    Регистрация для COM-взаимодействия

    На вкладке «Свойства проекта» на вкладке «Сборка» есть флажок «Регистрация для COM-взаимодействия»
    Это обеспечивает способ автоматического запуска утилиты RegAsm после сборка завершена.
    Это создаст файл .tlb в папке bin и зарегистрирует dll на вашем компьютере.
    Конкретная выполняемая команда regasm зависит от целевой платформы и используемой .NET Framework.
    В более ранних версиях Visual Studio была известная ошибка (KB956933), поскольку этот параметр всегда использовал 32-разрядную версию RegAsm.
    Вместо использования флажка «Зарегистрировать для COM-взаимодействия» можно добавить событие после сборки.

     %SystemRoot%\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe "$(TargetPath)" /tlb: "$(TargetDir)$(TargetName).tlb" /codebase 

    Вызываемая оболочка

    Когда COM-клиент вызывает .NET объект, среда CLR создает управляемый объект и вызываемую оболочку COM (CCW) для объекта.
    COM-клиенты не могут напрямую ссылаться на компонент .NET, а вместо этого используют вызываемую оболочку COM в качестве прокси для управляемого объекта.
    CCW необходимо упорядочить типы COM.
    CCW — это в основном библиотека типов (.tlb)
    Информация манифеста в сборке .NET должна быть преобразована в IDL.
    Когда в системе пользователя установлена ​​надстройка COM, для надстройки создаются записи реестра.
    Утилита Regsvr32 не будет работать для компонентов .NET.


    Regsvr32

    Это загрузит библиотеку и попытается вызвать DLLRegisterServer
    Это не может создать файл tlb
    дополнительная информация


    © 2022 Better Solutions Limited Все права защищены. © 2022 Better Solutions Limited TopPrevNext

    vba — Регистрация.Net COM DLL без прав администратора / regasm

    Чтобы зарегистрировать компоненты для использования в 32- и 64-разрядных средах, нам потребуется изменить файл реестра, который мы создали в нашем тестовом примере. Откройте его в своем любимом текстовом редакторе. Записи должны выглядеть примерно так:

     [HKEY_CLASSES_ROOT\\  Ваша сборка.Класс ]
    @="  ВашаСборка.Класс  "
    
    [HKEY_CLASSES_ROOT\\  YourAssembly.Class  \\CLSID]
    @="{  YourClassGUID  }" 

    Убедитесь, что он включает "CodeBase" = записей.

    Выполнить глобальный поиск/замену:

    • Изменить HKEY_CLASSES_ROOT (с псевдонимом HKLM\Software\Classes )
    • HKEY_CURRENT_USER\Software\Classes

    Скопируйте все ключи реестра (и их значения, перечисленные под ключами) во второй текстовый файл. Во втором текстовом файле:

    • Удалить все ключи (и связанные с ними значения), которые не содержат \CLSID\
    • Выполнить глобальный поиск/замену:
      • Изменить Классы\CLSID
      • Кому: Классы\Wow6432Node\CLSID

    Скопируйте все ключи из второго текстового файла в исходный .reg-файл и сохраните его.

    Удалить регистрационные записи из HKLM с помощью regasm:

     Regasm YourDLL.dll /отменить регистрацию 

    Чтобы убедиться, что наше изменение сработало (и что вы добились успеха не только из-за первоначальной регистрации с помощью regasm), мы должны убедиться, что VBA не может создать объект прямо сейчас.

    Откройте свое любимое приложение VBA и добавьте ссылку на YourDLL.tlb . Создайте новую процедуру примерно такого вида:

    .
      Общедоступная подпрограмма TestYourDLL()
      Dim x как AssemblyName.имя класса
      Установить x = новое имя_сборки.имя_класса
      Debug.Print "Видимо, это сработало."
    Конец сабвуфера
      

    Выполнить TestYourDLL . Вы должны получить сообщение об ошибке:

     Ошибка выполнения "429":
    
    Компонент ActiveX не может создать объект 

    (Если вы не получили сообщение об ошибке, ваша DLL все еще зарегистрирована.)

    Сохраните и закройте приложение VBA.

    Теперь запустите файл YourDLL.reg , который вы создали ранее, чтобы импортировать записи в реестр.(Если вы получили сообщение «Доступ запрещен», вы забыли изменить HKEY_CLASSES_ROOT на HKEY_CURRENT_USER\Software\Classes )

    Снова откройте приложение VBA и запустите TestYourDLL . Теперь вы должны увидеть «По-видимому, это сработало». в вашем ближайшем окне. Поздравляем! Вы зарегистрировали DLL! (Если вы получаете ошибку типа «Ошибка автоматизации: система не может найти указанный файл», в вашем файле реестра либо отсутствуют записи Codebase , либо они не указывают на фактическое расположение вашей библиотеки DLL.)

    В моем случае я собираюсь установить DLL на кучу компьютеров других пользователей вместе с моим приложением, поэтому во время установки я обновлю значение CodeBase , чтобы указать место, где я устанавливаю DLL, и я также установлю записи реестра с помощью кода, а не путем выполнения файла .reg. Но теперь, когда я знаю необходимые записи, сделать это тривиально.

    Что такое RegAsm.exe? Как отменить регистрацию dll с помощью RegAsm.exe?

    В этом посте мы объясним, что такое RegAsm.exe , как зарегистрировать или отменить регистрацию DLL с помощью RegAsm.exe и чем RegAsm.exe отличается от Regsvr32.exe.

    Что такое RegAsm.exe в Windows 11/10?

    RegAsm — это сокращенная форма Register Assembly . RegAsm.exe — это подлинный компонент Windows, разработанный Microsoft. RegAsm.exe открывает средство регистрации сборки. Когда инструмент регистрации сборки открыт, он считывает метаданные в сборке и добавляет необходимые записи в реестр.RegAsm.exe отвечает только за открытие средства регистрации сборки. Он не представляет никакой угрозы для вашего ПК. Однако в некоторых случаях некоторые вредоносные программы маскируются под RegAsm.exe.

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

    Является ли RegAsm.exe вредоносным ПО?

    Иногда антивирусные программы на нашем компьютере могут помечать некоторые важные системные файлы ОС Windows как угрозы. Это может быть ложное срабатывание или это может произойти, если вредоносное ПО маскируется под файл ОС, используя то же имя. Это может случиться и с RegAsm.exe !

    Если вы установили пиратскую программу и ваш антивирус пометил RegAsm.exe, затем:

    1. Полностью удалить пиратскую программу без каких-либо следов
    2. Просканировать компьютер с помощью антивирусной и антивредоносной программы
    3. Удалить пиратские установщики или связанные с ними файлы с вашего ПК

    Таким образом вы можете верните свой компьютер в нормальное состояние.

    Во избежание попадания на ваш компьютер файла RegAsm.exe, зараженного вредоносным ПО, не устанавливайте пиратские версии Microsoft Office, Windows или любые другие программы в этом отношении. Только так вы сможете избежать вредоносного ПО и обезопасить свой компьютер.

    Как отменить регистрацию DLL с помощью RegAsm.exe?

    Чтобы запустить инструмент, используйте командную строку Visual Studio Developer или Visual Studio Developer PowerShell. Отменить регистрацию DLL с помощью RegAsm.exe так же просто, как и зарегистрировать.

    Откройте командную строку и выполните следующую команду, заменив имя на имя, регистрацию которого вы хотите отменить.

    regasm /u .dll

    Чтобы полностью отменить регистрацию DLL, необходимо также отменить регистрацию библиотеки типов DLL.Для этого выполните следующую команду.

      regasm  /tlb /unregister  

    Чем RegAsm.exe отличается от Regsvr32.exe?

    Regsvr32.exe — это средство командной строки, которое используется для регистрации библиотек DLL и элементов управления ActiveX в реестре. Между тем, RegAsm.exe делает записи в реестре, чтобы компоненты .NET выглядели как компоненты COM. RegAsm.exe поставляется с пакетом SDK для .NET.

    Что такое кодовая база Regasm?

    Командная строка RegAsm Codebase используется для создания записи для codebase в реестре.Запись базы кода в реестре указывает путь к сборке, которая не установлена ​​в глобальном кэше сборок. В глобальном кэше сборок хранятся сборки на вашем ПК, которые используются несколькими программами. Файл сборки, для которого вы используете кодовую базу, должен быть сборкой со строгим именем, чтобы избежать конфликтов с другими файлами в глобальном кэше сборок.

    Надеемся, сегодня вы узнали здесь что-то новое.

    Как зарегистрировать файл TLB? – QuickAdviser

    Как зарегистрировать файл TLB?

    Выберите Пуск >> Выполнить.Введите следующее в поле команды: C:\Windows\Microsoft.NET\Framework\v4. 0.30319\regtlibv12.exe «», включая кавычки.

    Где находится Regtlibv12?

    Этот файл является частью Microsoft® Visual Studio® 2010. Regtlibv12.exe разработан корпорацией Microsoft. Это системный и скрытый файл. Regtlibv12.exe обычно находится в подпапке %WINDOWS% и имеет размер 58 192 байта.

    Что такое tlb-файл?

    Библиотека типов (.tlb) — это двоичный файл, в котором хранится информация о свойствах и методах объекта COM или DCOM в форме, доступной для других приложений во время выполнения.Используя библиотеку типов, приложение или браузер может определить, какие интерфейсы поддерживает объект, и вызвать методы интерфейса объекта.

    Что делает регистрация файла?

    Файл регистров — это массив регистров процессора в центральном процессоре (ЦП). Архитектура набора команд ЦП почти всегда будет определять набор регистров, которые используются для передачи данных между памятью и функциональными модулями на кристалле.

    Где хранятся файлы TLB?

    Ссылаясь на адреса физической памяти, TLB может находиться между ЦП и кешем ЦП, между кешем ЦП и основной памятью или между уровнями многоуровневого кеша.Размещение определяет, использует ли кэш физическую или виртуальную адресацию.

    Как открыть файл с расширением TLB?

    Как открыть файл с расширением TLB?

    1. Загрузите и установите Microsoft Excel.
    2. Обновите Microsoft Excel до последней версии.
    3. Установите приложение по умолчанию для открытия файлов TLB в Microsoft Excel.
    4. Проверьте TLB на наличие ошибок.

    С какими файлами работает regsvr32?

    Regsvr32 — это инструмент командной строки в Windows, который обозначает сервер регистрации Microsoft.Он используется для регистрации и отмены регистрации элементов управления связыванием и внедрением объектов (OLE), таких как файлы DLL и элементы управления ActiveX. файлы ОСХ.

    В чем разница между регистром и файлом регистра?

    Регистры — это места временного хранения внутри ЦП, в которых хранятся данные и адреса. Файл регистров — это компонент, содержащий все регистры общего назначения микропроцессора. Некоторые процессоры также размещают в файле регистров специальные регистры, такие как регистр ПК и регистр состояния.

    Как мне зарегистрироваться в regsvr32?

    Нажмите «Пуск» > «Все программы» > «Стандартные», щелкните правой кнопкой мыши «Командная строка» и выберите «Запуск от имени администратора» ИЛИ в поле поиска введите CMD, и когда в результатах появится cmd.exe, щелкните правой кнопкой мыши cmd.exe и выберите «Запуск от имени администратора» В командной строке введите: REGSVR32 «ПУТЬ К DLL-ФАЙЛУ»

    Есть ли способ зарегистрировать библиотеку типов в Windows 7?

    Не могу поверить, что в Windows 7 невозможно зарегистрировать существующую библиотеку типов.Любая помощь будет принята с благодарностью. Ну, я думаю, я могу ответить на свой вопрос (и для всех, у кого такая же проблема):

    Как зарегистрировать библиотеку типов в Excel?

    Правильные записи регистрации для библиотеки типов можно создать, вызвав функцию RegisterTypeLib для библиотеки типов. Затем вы можете использовать Regedit.exe для записи регистрационных записей в текстовый файл из системной регистрационной базы данных. Для библиотеки типов зарегистрирована следующая информация:

    Где можно скачать утилиту регистрации библиотеки шрифтов?

    По состоянию на 2019 год утилиту можно скачать здесь: https://github.com/tannerhelland/vbAccelerator-Archive/tree/master/VB/Utilities/Type_Library_Registration_Utility Regasm работает только с файлами TLB, созданными для сборок .NET.

    Как зарегистрировать локализованную библиотеку типов?

    Полное имя локализованной библиотеки типов. Используя спецификатор LCID, приложение может явно зарегистрировать имена файлов библиотек типов для разных языков. Это позволяет приложению найти нужный язык без необходимости открывать все библиотеки типов с заданным именем.

    Что такое файл TLB?

    Что такое регистр TLB?

    При указании параметра /tlb Regasm.exe создает и регистрирует библиотеку типов, описывающую типы, обнаруженные в сборке. Если вы используете параметр /tlb для регистрации библиотеки типов, вы можете использовать параметр /tlb с параметром /unregister для отмены регистрации библиотеки типов.

    Как открыть файл .TLB в Excel?

    Шаг 3. Установите приложение по умолчанию для открытия файлов TLB в Microsoft Excel

    1. Щелкните правой кнопкой мыши файл TLB и выберите Информация.
    2. Выберите Microsoft Excel и щелкните Изменить для всех…
    3. Если вы выполнили предыдущие шаги, должно появиться сообщение: Это изменение будет применено ко всем файлам с расширением TLB.

    Все ли библиотеки DLL должны быть зарегистрированы?

    Короткий ответ: вам не нужно регистрировать библиотеки DLL, чтобы использовать их. Единственным исключением являются библиотеки DLL COM и ActiveX, которым необходимо добавить определенные ключи в реестр. Для обычной библиотеки DLL (включая библиотеки классов .NET) все, что вам нужно знать, — это путь к библиотеке DLL.

    С какими файлами работает Regsvr32?

    Что такое TLB объяснить с помощью диаграммы?

    Резервный буфер трансляции (TLB) — это кэш памяти, который используется для сокращения времени, необходимого для доступа к ячейке пользовательской памяти. TLB может находиться между ЦП и кешем ЦП, между кешем ЦП и основной памятью или между различными уровнями многоуровневого кеша.

    Используется ли когда-либо файл .tlb во время выполнения?

    Требуется отдельная библиотека DLL, которая реализует прокси и заглушку, почти всегда генерируемую из файла IDL.Это сложно сделать в .NET, вы почти всегда используете удобный второй способ, используя стандартный маршаллер, встроенный в Windows. Который использует библиотеку типов, чтобы узнать, что такое типы аргументов.

    Когда использовать RegAsm.exe / TLB в сети?

    Параметр Regasm.exe /tlb гарантирует, что прокси/заглушка интерфейса и библиотека типов зарегистрированы, чтобы стандартный маршаллер мог найти библиотеку. Когда вы предоставляете структуру в общедоступном интерфейсе. Структуры очень неприятны в сценариях взаимодействия, их макет сильно зависит от настроек компилятора.

    Как зарегистрировать библиотеки типов в файле .dll?

    Библиотеки типов. Библиотеки типов (.TLB) — это двоичные файлы, содержащие всю информацию о типах, необходимую для использования процедур и классов в .DLL. Чтобы зарегистрировать библиотеку типов, вы должны использовать regtlibv12.exe (ранее regtlib.exe). Выполните следующие действия, чтобы использовать regtlibv12.exe:

    .

    Как создается библиотека типов в Visual Studio?

    Библиотеки типов, сгенерированные непосредственно из сборки, [i]зависят[/i] от номеров версий сборки: идентификаторы GUID генерируются на основе этой информации, даже если интерфейс не изменился.Visual Studio использует regasm для регистрации и создания библиотеки типов. Под этим он использует RegisterTypeLib, вызов win32.

    Регистрация сборки (RegAsm.exe) как для 32-, так и для 64-разрядных систем с использованием настраиваемого действия

    Сводка

    В этой статье содержится информация о регистрации сборки .Net при установке программ установки с помощью установщика Windows и RegAsm.exe.

    Краткий обзор

    В этой статье содержится информация о работе с регистрацией сборки .Net при установке программ установки с помощью установщика Windows.

    Обсуждение

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

    При обычном использовании InstallShield в процессе сборки InstallShield вызывает файл Microsoft RegAsm.exe в .NET .dll для создания файла реестра (.reg). Это происходит, когда .Для свойства NET COM Interop в компоненте задано значение «Да». Во время сборки создается файл .reg и импортируется файл .reg. Полученные записи реестра затем сохраняются в таблице реестра базы данных MSI.

    ?Использование пользовательского кода для ручного запуска инструмента RegAsm.exe для регистрации сборки включает более одной версии этого инструмента на основе операционной системы:

    ? C:\Windows\Microsoft.NET\Framework\\RegAsm.exe
    ? C:\виндовс\микрософт.NET\Framework64\\RegAsm.exe

    Обратитесь к статическому методу RuntimeEnvironment.GetRuntimeDirectory() функциональности .NET, чтобы вернуть номер FrameWorkVersion и/или путь общеязыковой среды выполнения.

    В случае, если пользовательские действия для вызова RegAsm.exe невозможны, рассмотрите возможность создания Reg-файла вне InstallShield в качестве процесса перед сборкой и использования полученного Reg-файла при сборке. В статье Microsoft Regasm.exe (инструмент регистрации сборки) описывается, какой переключатель следует передать в cmd для создания файла Reg.Мастер импорта REG-файла можно использовать для импорта файла .reg в компонент или набор реестра, данные реестра добавляются к данным реестра компонента или набора реестра и записываются в систему конечного пользователя, если компонент или набор реестра установлен.

    Связанные документы

    Regasm.exe (инструмент регистрации сборки)

    LaunchApplication()

    Мастер импорта REG-файла

    Связанные статьи базы знаний

    Запуск исполняемого файла с помощью пользовательского действия

    Дополнительная информация

    An

    — Используйте метод InstallScript LaunchApplication() в пользовательском действии в 64-разрядной программе установки при демонстрации установки.exe для предоставления прав администратора — это подход к запуску 64-разрядной версии RegAsm для сборки .Net.

    — Убедитесь, что регистрируемая .Net dll является управляемым кодом и COM видима.

    — Включить результирующее пользовательское действие InstallScript в последовательность выполнения и установить для него отложенное выполнение. В отложенном режиме системные изменения описываются внутренним сценарием установки между встроенными действиями InstallInitialize и InstallFinalize. Запланируйте отложенное действие между InstallInitialize и InstallFinalize.

    — Условие запуска действия в системах x64. Обычное свойство установщика Windows для использования в качестве условия: VersionNT64.

    — Создать, запланировать, обусловить и поддерживать аналогичное пользовательское действие для x86 RegAsm.exe.

    .
  • Добавить комментарий

    Ваш адрес email не будет опубликован.