Regasm exe как зарегистрировать библиотеку
Перейти к содержимому

Regasm exe как зарегистрировать библиотеку

  • автор:

Как зарегистрировать DLL в Windows

Как зарегистрировать DLL в Windows 10 и Windows 11

Среди частых вопросов пользователей, особенно после того, как они сталкиваются с тем, что какая-то из библиотек DLL отсутствует в Windows 10, Windows 11 или других версиях системы — как зарегистрировать DLL в соответствующей версии ОС.

В этой инструкции подробно о способах регистрации библиотек DLL в Windows x64 и x86 (32-бит) с помощью regsvr32.exe (и кратко о regasm.exe), о возможных нюансах и проблемах, которые могут возникнуть в процессе.

Регистрация библиотеки DLL в Windows 10, Windows 11 и предыдущих версий системы

Дальнейшие шаги описаны в предположении, что DLL, которую нужно зарегистрировать, уже находится в нужном расположении: папке C:\Windows\System32, C:\Windows\SysWOW64 или, в некоторых случаях — отдельных папках программ, к которой относится соответствующая библиотека, например, для 1С — C:\Program Files\1cv8\номер_версии\bin (или Program Files x86 в случае 32-битной версии).

Прежде чем приступить к регистрации библиотеки, учитывайте следующие моменты:

  • В x64 версиях Windows 64-битные DLL хранятся в System32, а 32-битные — в SysWOW64 (у некоторых начинающих пользователей бывает обратное предположение исходя из имён папок).
  • Файлы DLL x64 и x86 (32-бит) — это разные файлы. И если прямого указания на разрядность в месте загрузки файла нет, то чаще это 32-битный файл (что не мешает ему работать в x64 системе), но это не всегда так.
  • Для регистрации библиотеки DLL используется системный инструмент regsvr32.exe, который также доступен в двух версиях, которые лежат в папках System32 и SysWOW64 (в случае 64-битных систем). По умолчанию при описываемых далее действиях запускается x64 версия.
  • 32-битным программам и играм (по умолчанию устанавливаются в Program Files x86 в 32-битных системах) для работы нужны 32-битные DLL, не зависимо от разрядности Windows.

Сам процесс регистрации в общем случае состоит из следующих шагов:

  1. Нажмите клавиши Win+R на клавиатуре (Win — клавиша с эмблемой Windows). Также можно нажать правой кнопкой мыши по кнопке «Пуск» в Windows 11 или Windows 10 и выбрать пункт контекстного меню «Выполнить».
  2. Введите команду regsvr32.exe путь_к_файлу (если путь к файлу содержит пробелы, возьмите весь путь в кавычки), например, для регистрации библиотеки DLL COMCNTR.DLL в 1С (для 64-бит) команда может иметь вид:Если DLL находится в System32, полный путь указывать не обязательно, достаточно простого имени файла, как на изображении ниже. Регистрация библиотеки DLL с помощью regsvr32
  3. Нажмите Ок или Enter.
  4. При успехе вы получите сообщение вида «Успешное выполнение DllRegisterServer в имя_файла.dll» или «Успешное выполнение DllRegisterServer и DllInstall в имя_файла.dll». Успешная регистрация библиотеки DLL

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

Ошибка регистрации regsvr32 точка входа DllRegisterServer не найдена

Дополнительно: для регистрации классов из библиотек DLL .NET Framework в COM с созданием необходимых записей в реестре используется regasm.exe из .NET SDK, причем базовая команда регистрации DLL выглядит тем же образом, что и в случае с regsvr32.exe. Подробнее по использованию regasm — https://docs.microsoft.com/ru-ru/dotnet/framework/tools/regasm-exe-assembly-registration-tool.

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

Ошибка при регистрации с помощью regsvr32 вида «Точка входа DllRegisterServer не найдена» говорит о том, что эта библиотека DLL не поддерживает регистрацию описанным методом. Можно попробовать использовать вариант команды:

но с большой вероятностью и это не поможет.

У большинства домашних пользователей такая проблема возникает при регистрации файлов DLL для игр и программ, часто не вполне лицензионных, которые сообщили, что нужный файл DLL не обнаружен или отсутствует. Причем сами библиотеки DLL обычно скачаны со сторонних сайтов (и чаще всего имеют имена начинающиеся с «vc», «msvc» или «d3d»). А решение, как правило, простое — выяснить, частью какого набора компонентов является эта DLL и установить эти компоненты с помощью их собственного установщика. Более подробно проблема и подходы к решению описаны в инструкции Точка входа DllRegisterServer не найдена — причины и возможные решения.

Видео

Надеюсь, цель достигнута, а количество вопросов, связанных с регистрацией DLL в Windows, уменьшилось.

How to register a DLL with RegAsm in Build EventS VS2013

In every compile, output dll is changed in my program and after every compile, I must register dll again. I can register it via Visual Studio Command Prompt as regasm mydll.dll. But I dont want to do it everytime and I want it as automatically. After some research, I have detected that it is possible with Visual Studio from Build Events (project>properties). But I have never used Build Events before and I really cannot understand how it will be. Should I write my dll path to pre-build event command line ?

My dll location : C:\Program Files (x86)\Onur\Client\Bin\client.dll

My regasm location : C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe

What should I write to pre-build and post-build commands in Build Events section ?

I tried them but even not compiled within it. VS Post Build Event

2 Answers 2

The RegAsm executable is located in the .Net Framework version folder but that is not by default in your path.

Fortunately there exist two Environment variables, namely FrameworkDir and FrameWorkVersion that you could use in your Post-build event. The MSDN documentation explains how to use Environment Variables.

For your specific case, the following does work in the Post-Build event (because your new dll need to be compiled and ready):

Notice how the $(TargetPath) is enclosed in double quotes to prevent any mishaps in case there is a space in your path.

If frameworkdir and/or frameworkversion don’t exist you can use a fullpath but in that case you have to make sure that path exists on all machines you want to run that build. You might as well decide to bring the regasm.exe under source control and make it part of your buildtools.

Keep in mind though that RegAsm requires elevated privileges so you would need to run Visual Studio already elevated to make the execution of RegAsm work in the first place.

Как зарегистрировать DLL, написанный на C#?

6. Теперь мне надо запустить этот же файл Access с этим же кодом на другом компьютере. Но на другом компьютере нет моей DLL (TestCodeForAccess001.dll), а если даже её скопировать вместе с файлом Access, то она не будет зарегистрирована. Как мне сделать так, чтобы этот код в VBA в MS Access можно было запускать и на другом компе? Единственный способ, который у меня работает — установить на другом компе Visual Studio, скомпилировать на нём исходный код. Тогда Visual Studio сам всё зарегистрирует. Но этот путь явно ущербный. Требует кучи времени и моего присутствия.

What is RegAsm.exe? How to Unregister a DLL Using RegAsm.exe?

In this post, we explain what is RegAsm.exe, how to register or unregister a DLL using RegAsm.exe, and how RegAsm.exe is different from Regsvr32.exe.

What is RegAsm.exe in Windows 11/10?

RegAsm is the short form of Register Assembly. RegAsm.exe is a genuine component of Windows developed by Microsoft. RegAsm.exe opens the Assembly Registration tool. When the Assembly Registration tool is opened, it reads the metadata within an assembly and adds the necessary entries to the registry. RegAsm.exe is only responsible for opening the Assembly Registration tool. It does not pose any threat to your PC. However, there are some instances where some malware is camouflaged as RegAsm.exe.

The Assembly Registration tool reads the metadata within an assembly and adds the necessary entries to the registry, which allows COM clients to create .NET Framework classes transparently. Once a class is registered, any COM client can use it as though the class were a COM class. The class is registered only once, when the assembly is installed. Instances of classes within the assembly cannot be created from COM until they are actually registered.

Is RegAsm.exe malware?

Occasionally, the antivirus programs on our computer may flag some important system file of Windows OS as threats. It could be a false positive or it could happen if malware is masquerading as an OS file by taking the same name. This can happen with RegAsm.exe too!

If you have installed any program that is pirated and your antivirus flagged RegAsm.exe, then:

  1. Uninstall the pirated program completely without any traces of it
  2. Scan your PC with antivirus and anti-malware program
  3. Delete the pirated installers or files related to it from your PC

This way you can get back your PC to normalcy.

To avoid malware-infected RegAsm.exe getting into your PC, don’t install pirated Microsoft Office, or Windows, or any other programs for that matter. This is the only way you can avoid the malware and make your PC secure.

How to Unregister a DLL using RegAsm.exe?

To run the tool, use Visual Studio Developer Command Prompt or Visual Studio Developer PowerShell. Unregistering a DLL using RegAsm.exe is so easy as registering.

Open Command Prompt and run the following command replacing the <dllfilename> name with the name you want to unregister.

regasm /u <dllfilename>.dll

To unregister the DLL completely, you have to unregister the type library of the DLL too. To do so, run the following command.

How is RegAsm.exe different from Regsvr32.exe?

Regsvr32.exe is a command-line tool that is used to register DLLs and ActiveX controls in the registry. Meanwhile, RegAsm.exe makes registry entries to make .NET components look like COM components. RegAsm.exe comes with the .NET SDK.

What is Regasm Codebase?

RegAsm Codebase command line is used to create an entry for codebase in the registry. The codebase entry in the registry specifies the path for the assembly that is not installed on the global assembly cache. The global assembly cache stores assemblies on your PC that are used by multiple programs. The assembly file for which you use the codebase must be a strong-named assembly to avoid conflicts with others in the global assembly cache.

We hope you learned something new here today.

Published on July 29, 2021 Tags: Command Line

Related Posts

Uninstall Office Update using command line in Windows 11/10

How to check Last Password Change in CMD or PowerShell

How to check Last Password Change in CMD or PowerShell

Complete list of Command Prompt commands

Complete list of Command Prompt commands

[email protected]

Guru is a Communications graduate with hands-on experience with computers, cameras, and editing tools. A tech enthusiast and a movie buff who loves writing about computers, he dreams of living a life devoid of all tech and modern-day advancements in a forest.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Как зарегистрировать DLL в Windows

Как зарегистрировать DLL в Windows 10 и Windows 11

Среди частых вопросов пользователей, особенно после того, как они сталкиваются с тем, что какая-то из библиотек DLL отсутствует в Windows 10, Windows 11 или других версиях системы — как зарегистрировать DLL в соответствующей версии ОС.

В этой инструкции подробно о способах регистрации библиотек DLL в Windows x64 и x86 (32-бит) с помощью regsvr32.exe (и кратко о regasm.exe), о возможных нюансах и проблемах, которые могут возникнуть в процессе.

Регистрация библиотеки DLL в Windows 10, Windows 11 и предыдущих версий системы

Дальнейшие шаги описаны в предположении, что DLL, которую нужно зарегистрировать, уже находится в нужном расположении: папке C:\Windows\System32, C:\Windows\SysWOW64 или, в некоторых случаях — отдельных папках программ, к которой относится соответствующая библиотека, например, для 1С — C:\Program Files\1cv8\номер_версии\bin (или Program Files x86 в случае 32-битной версии).

Прежде чем приступить к регистрации библиотеки, учитывайте следующие моменты:

  • В x64 версиях Windows 64-битные DLL хранятся в System32, а 32-битные — в SysWOW64 (у некоторых начинающих пользователей бывает обратное предположение исходя из имён папок).
  • Файлы DLL x64 и x86 (32-бит) — это разные файлы. И если прямого указания на разрядность в месте загрузки файла нет, то чаще это 32-битный файл (что не мешает ему работать в x64 системе), но это не всегда так.
  • Для регистрации библиотеки DLL используется системный инструмент regsvr32.exe, который также доступен в двух версиях, которые лежат в папках System32 и SysWOW64 (в случае 64-битных систем). По умолчанию при описываемых далее действиях запускается x64 версия.
  • 32-битным программам и играм (по умолчанию устанавливаются в Program Files x86 в 32-битных системах) для работы нужны 32-битные DLL, не зависимо от разрядности Windows.

Сам процесс регистрации в общем случае состоит из следующих шагов:

  1. Нажмите клавиши Win+R на клавиатуре (Win — клавиша с эмблемой Windows). Также можно нажать правой кнопкой мыши по кнопке «Пуск» в Windows 11 или Windows 10 и выбрать пункт контекстного меню «Выполнить».
  2. Введите команду regsvr32.exe путь_к_файлу (если путь к файлу содержит пробелы, возьмите весь путь в кавычки), например, для регистрации библиотеки DLL COMCNTR.DLL в 1С (для 64-бит) команда может иметь вид:Если DLL находится в System32, полный путь указывать не обязательно, достаточно простого имени файла, как на изображении ниже. Регистрация библиотеки DLL с помощью regsvr32
  3. Нажмите Ок или Enter.
  4. При успехе вы получите сообщение вида «Успешное выполнение DllRegisterServer в имя_файла.dll» или «Успешное выполнение DllRegisterServer и DllInstall в имя_файла.dll». Успешная регистрация библиотеки DLL

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

Ошибка регистрации regsvr32 точка входа DllRegisterServer не найдена

Дополнительно: для регистрации классов из библиотек DLL .NET Framework в COM с созданием необходимых записей в реестре используется regasm.exe из .NET SDK, причем базовая команда регистрации DLL выглядит тем же образом, что и в случае с regsvr32.exe. Подробнее по использованию regasm — https://docs.microsoft.com/ru-ru/dotnet/framework/tools/regasm-exe-assembly-registration-tool.

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

Ошибка при регистрации с помощью regsvr32 вида «Точка входа DllRegisterServer не найдена» говорит о том, что эта библиотека DLL не поддерживает регистрацию описанным методом. Можно попробовать использовать вариант команды:

но с большой вероятностью и это не поможет.

У большинства домашних пользователей такая проблема возникает при регистрации файлов DLL для игр и программ, часто не вполне лицензионных, которые сообщили, что нужный файл DLL не обнаружен или отсутствует. Причем сами библиотеки DLL обычно скачаны со сторонних сайтов (и чаще всего имеют имена начинающиеся с «vc», «msvc» или «d3d»). А решение, как правило, простое — выяснить, частью какого набора компонентов является эта DLL и установить эти компоненты с помощью их собственного установщика. Более подробно проблема и подходы к решению описаны в инструкции Точка входа DllRegisterServer не найдена — причины и возможные решения.

Видео

Надеюсь, цель достигнута, а количество вопросов, связанных с регистрацией DLL в Windows, уменьшилось.

Как зарегистрировать DLL, написанный на C#?

6. Теперь мне надо запустить этот же файл Access с этим же кодом на другом компьютере. Но на другом компьютере нет моей DLL (TestCodeForAccess001.dll), а если даже её скопировать вместе с файлом Access, то она не будет зарегистрирована. Как мне сделать так, чтобы этот код в VBA в MS Access можно было запускать и на другом компе? Единственный способ, который у меня работает — установить на другом компе Visual Studio, скомпилировать на нём исходный код. Тогда Visual Studio сам всё зарегистрирует. Но этот путь явно ущербный. Требует кучи времени и моего присутствия.

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

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

Несколько способов регистрации динамической библиотеки

Первым делом, непосредственно перед регистрацией, нужно переместить скачанный или найденный файл с расширением dll в нужную папку. Обычно это System32 или SysWOW64. Лучше всего будет посмотреть необходимое местоположение для каждого конкретного файла в глобальной сети.

У пользователей 64 разрядной системы, файл regsrv32.exe присутствует не только в папке windows, в каталоге System32, но и SysWOW64. Однако, утилита для 64 разрядных систем находится все также в первой папке System32. Во избежание путаницы и неправильно срабатывания команд, тем, кто использует 64 разрядную виндовс, лучше писать в операторах вместо regsrv32.exe, полный путь к этому файлу.

Оператор регистрации dll

Первый способ заключается в том, чтобы запустить приложение «Выполнить», через пуск или сочетанием Win+R. И написать в ней regsvr32.exe полный_путь_к_файлу. Увидеть пример такого оператора можно на изображении.

Ошибка при регистрации

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

Как с ними справиться будет написано дальше.

Использование командной строки

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

Оператор отображен на изображении. Здесь тоже может произойти удачная регистрация или же будет выдано сообщение о сбое.

Третий способ представляет собой, по сути, то же самое. Нужно клацнуть пкм по файлу библиотеки, выбрать строку в меню «Открыть с помощью» и в этой утилите указать полный путь до исполняемого файла, который располагается в папке windows/system32 или syswow64.

Возможные ошибки при регистрации

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

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *