Не удается добавить ссылку на dll убедитесь что файл доступен

Обновлено: 07.07.2024

Файл DLL – компонент динамически подключаемой библиотеки, чьи элементы используют практически все программы. Библиотека DLL файлов расположена в корневой папке системы. Компоненты должны быть все в наличии, иметь цифровую подпись, правильно работать и быть актуальными по версии. Если одно из требований не соблюдено, при запуске программы пользователь получит информационное уведомление: ошибка DLL. Неисправность свидетельствует о том, что отсутствует DLL файл, поврежден или устарел.

Как установить DLL файл

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

Помещение и регистрация файлов библиотеки

Перед тем как установить DLL файл на Windows 7,8,10, их нужно скачать, причем точно под разрядность системы.

Давайте определим, какая разрядность у Вашей системы (если вы точно знаете, может пропустить этот шаг)

Шаг 1. Кликаем правой кнопкой мыши по "Мой компьютер" и выбираем "Свойства"


Шаг 2. В открывшемся окне, мы может прочитать свойства компьютера, версию операционной системы и её разрядность 32 (х86) или 64 бит. В нашем случаи стоит 64-разрядная операционная система Windows 10.


·

Шаг 3. После скачивания файлов их нужно поместить в корневую папку, зарегистрировать

для х32 (х86) систем компонент необходимо заменить или поместить в папку C:\Windows\System32;

для х64 необходимо выполнить замену или переместить в папку C:\Windows\ SysWOW64;

Шаг 4. Файл нужно зарегистрировать в системе.

Сделать это можно, открыв командную строку комбинацией «Win» + «R», или нажать «Пуск» и «Выполнить»;

в открывшемся окне ввести через пробел следующее: regsvr32 имя файла.dll – где, «regsvr32» ─ команда для регистрации, а «имя файла.dll» – полное имя вставленного компонента;


или же можно прописать расположение файла вручную - regsvr32.exe + путь к файлу


Шаг 5. Нажмите "ОК", и перезагрузите компьютер, и новые параметры вступят в силу.

Сразу хочется отметить, что при регистрации возможны появления ошибок. Например: "Не удалось загрузить модуль". Обычно они возникают по 3 причинам

Второй способ регистрации

Шаг 1. Зарегистрировать файл можно с помощью командой строки, которую нужно запустить от имени администратора.

Шаг 2. Пишем команду regsvr32.exe + путь к файлу и жмём "Enter"


Ссылка на ". dll" не может быть добавлена. Пожалуйста, убедитесь, что файл доступен, и это действительная сборка или COM составная часть.

ILDissassembler говорит, что нет действительного заголовка CLR, поэтому я пытаюсь зарегистрировать его с помощью regsvr32, и это дает мне еще одну ошибку:

Модуль "" был загружен, но вызов DLLRegisterServer завершился неудачно с код ошибки «0x80004005»

Я использую окончательную версию VS2010 на 64-битной машине с Windows 7. В чем может быть проблема?

Спасибо за любые подсказки/ответы

Я использовал обходчик зависимостей, чтобы проверить внутренние ссылки, которые были у dll. Оказалось, что он нуждался во времени выполнения VB msvbvm60.dll, и, поскольку на моем устройстве dev не установлено, я не смог зарегистрировать его с помощью regsvr32.

Это, кажется, ответ на мой оригинальный вопрос на данный момент.

Следующее работало для меня:

Короткий ответ

Запустите следующее через командную строку (cmd):

И действительный DLL будет создан для вас.

Более длинный ответ

Найдите TlbImp.exe. Возможно, находится в C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin. Если вы не можете найти его, перейдите в корневую папку (C:\или D :) и запустите:

Запустите tlbimp.exe и поместите свою DLL за ним. Пример: если ваш dll - cvextern.dll. Вы можете запустить:

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

Убедитесь, что ваш компилятор установлен на x86, если вы пытаетесь ссылаться на dll x86 .

Во время отладки до меня дошло, что я компилирую для 64 бит, но у меня загружен Office x86. Несмотря на то, что я загрузил библиотеку Access для 32-разрядной версии, она никогда не использовалась приложением . и поэтому была недоступна.

"Provider = Microsoft.ACE.OLEDB.12.0; Источник данных =" + strFilePath + "; Расширенные свойства = 'Excel 12.0 Xml; HDR = Да'";

. я получаю ошибку

Как только я переключил компилятор на x86, он заработал

У меня та же проблема с импортом WinSCard.dll в моем проекте. Я имею дело с этим импортированием непосредственно из DLL, как это:

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

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

Вы не можете добавить ссылку на native DLL. Однако вы можете включить их в решение (щелкните правой кнопкой мыши решение, выберите «Добавить существующий файл»), но на них не будут ссылаться, пока вы не объявите что-то вроде

Может быть, есть какая-то оболочка DLL, на которую вы на самом деле ссылаетесь и которая содержит импорт DLL.

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

Эта проблема связана с тем, что сборка, которую вы пытаетесь добавить, предназначена и скомпилирована только для x86 или x64 архитектуры процессора.

Просто попробуйте изменить Целевую платформу на x86 или x64 in Build -> Configuration Manager .

У меня была эта ошибка при написании службы Windows. Я запускал Visual Studio от имени администратора, чтобы мои команды после сборки автоматически устанавливали мой сервис. Я заметил, что когда я закрыл все и запустил VS нормально (не как администратор), он позволил мне добавить ссылки без ошибок.

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

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

Мне нужно было изменить архитектуру x86 с x64 в диспетчере конфигурации и скопировать мою 32-битную DLL (язык C - pcProxAPI.dll) в новую созданную папку. Это поверх шагов, описанных в «Sashus» ниже ,.

У меня была такая же проблема, когда я пытался добавить DLL, которую я только что закодировал. Оказалось, мне нужно установить свойства проекта, из которого моя dll:

  • Configuration Properties\General\Common Language Runtime Support: /clr
  • Configuration Properties\C/C++\General\Common Language RunTime Support: /clr

Потому что проект, в котором я хотел использовать эту DLL, также был настроен таким же образом (те же свойства были установлены в /clr ).

Обычно в Visual Studio 2015 вы должны создавать проект dll как проект C++ -> CLR из шаблонов Visual Studio, но технически вы можете включить его после факта:

Критическое свойство называется Common Language Runtime Support , установленное в конфигурации вашего проекта. Он находится под Configuration Properties > General > Common Language Runtime Support .

В качестве примера я предлагаю создать новое решение в виде C++ CLR-проекта и изучить там XML, возможно, даже проанализировать его, чтобы убедиться, что нет ничего очень важного, что является необычным.

Для тех, кто ищет помощь по этому вопросу или испытывает исключение FileNotFoundException или FirstChanceException, ознакомьтесь с моим ответом здесь:

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

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

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

В моем случае мне пришлось зарегистрировать .dll.

Для этого откройте cmd.exe (консоль) с правами администратора и введите:

ответил(а) 2013-04-05T14:24:00+04:00 8 лет, 7 месяцев назад

Следующие работали для меня:

короткий ответ

выполните следующую команду через командную строку (cmd):

И для вас будет создана действительная dll.

Более длинный ответ

Найдите TlbImp.exe. Возможно, он находится в папке C:\Program Files (x86)\Microsoft SDK\Windows\v7.0A\Bin. Если вы не можете найти его, перейдите в свою корневую папку (C:\или D:) и запустите:

Запустите tlbimp.exe и поместите его dll за ним. Пример. Если вы dll - cvextern.dll. Вы можете запустить:

Убедитесь, что необходимые DLL файлы экспортированы (или скопированы вручную) в папку bin при создании приложения.

У меня была такая же программа, я надеюсь, что это может помочь.

Я использую Windows 7, откройте "Командная строка" → "Администратор". зарегистрируйте свою <. > . dll.

Зачем запускать в качестве администратора, вы можете зарегистрировать вашу <. > . dll с помощью запуска в Windows Start, но все же ваша dll будет запускаться только как пользователь, даже если ваша учетная запись является администратором.

Теперь вы можете добавить свою <. > . dll в Project- > Add Reference- > Browse

'Для этого требуется файл dll cvextern.dll. "Это может быть ваш собственный файл cs или какая-либо другая сторонняя dll, которую вы используете в своем проекте.

Чтобы вызвать собственные DLL файлы в собственный файл cs, скопируйте dll в каталог root\lib проекта и добавьте его как существующий элемент. (Добавить -Исходящий элемент) и использовать Dllimport с правильным местоположением.

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

После сборки убедитесь, что необходимые DLL файлы появляются в папке Build. В некоторых случаях он может не отображаться или заменяться в папке "Сборка". Удалите папку Build вручную и снова создайте.

ответил(а) 2017-12-21T02:40:00+03:00 3 года, 11 месяцев назад

Ищите здесь ответ от TheMattster. Я реализовал это, и это сработало как шарм. В двух словах, его решение предлагает добавить COM-библиотеку в качестве ресурса в проект (так что теперь он компилируется в DLL файл проекта), и при первом запуске записать его в файл (т.е. Файл DLL, который я хотел там в первом место).

Следующее взято из его ответа.

Шаг 1) Добавьте DLL в качестве ресурса (ниже как "Resources.DllFile"). Для этого откройте свойства проекта, выберите вкладку ресурсов, выберите "добавить существующий файл" и добавьте DLL в качестве ресурса.

Шаг 2) Добавьте имя библиотеки DLL в качестве строкового ресурса (ниже как "Resources.DllName").

Шаг 3) Добавьте этот код в основную форму загрузки:

Моя проблема заключалась в том, что мне пришлось не только использовать COM DLL в своем проекте, но и развернуть его вместе с приложением, используя ClickOnce, и, не имея возможности добавить ссылку на него в моем проекте, вышеприведенное решение является практически единственным, которое работал.

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

Содержание:

  • Почему возникают ошибки с DLL?
  • Решение проблем с DDL файлами.
  • Недостающие компоненты C++ Runtime Library и DirectX.
  • Удаление сбойного приложения.
  • Обновление драйверов устройства.
  • Другие проблемы с DLL библиотеками.
  • Что делать если важный файл или DLL библиотека были случайно удалены?

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

Почему возникают ошибки с DLL?

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

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

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

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

Решение проблем с DDL файлами

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

Пункты "Восстановление системы" "Восстановление образа системы" и "Восстановление при загрузке" подойдут для решения большинства логических проблем операционной системы. Пункты "Восстановление системы" "Восстановление образа системы" и "Восстановление при загрузке" подойдут для решения большинства логических проблем операционной системы.

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

Если проблема кроется в некорректной работе загрузчика, рекомендуем ознакомится со способами исправления в статье «Как восстановить загрузчик Windows 10» .

Недостающие компоненты C++ Runtime Library и DirectX

Чаще всего пользователи сталкиваются с проблемой ошибок DLL, которые связаны с отсутствием необходимых компонентов C++ Runtime Library либо DirectX .

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

Ошибка msvcr100.dll – сбойный компонент в системе безопасности.

Ошибки dxgi.* , d3dx9_25.*, d3d11.*, d3dx9.*, d3dx9_43.*, xinput1_3.*, d3dx9_31.*, xinput1_2.*, d3dx9_31.*, d3dx9_34.*, d3dx9_42.*, x3daudio1_7.*, x3daudio1_6.*, xrsound.* d3dx10_43.*, d3dx9_26.*, d3dx9_30.*, d3dx9_27.*, d3dx11_43.*, d3dcompiler_43.*, d3d10.*.

Ошибка steam_api.dll – распространённая ошибка среди геймеров и пользователей магазина цифровой дистрибуции Steam. Часто возникает при установке пиратских сборок игр и взломанных клиентов Steam.

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

Ошибка uplay_r1_loader.* , Uplay.exe, uplay.*, ubiorbitapi_r2_loader.* — аналогичная ошибка, как и с со Steam.

Ошибка xlive – проблемы с файлами цифрового магазина Microsoft.

Ошибка msvcrt.* , msvcr71.*, msvcrt.*, msvcp120.*, msvcp110.* x64 msvcr90.*, msvcr110.*, msvcr100.*, msvcr80.*, msvcr120.*.

Ошибка physxcudart_20.* , physxloader.* и т.д.- проблемы с файлами NVIDIA PHYSX SYSTEM.

Удаление сбойного приложения

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

Чтобы определить сбойное приложение, необходимо:

Шаг 1. Нажимаем левой кнопкой мыши по иконке «Поиск» (изображение лупы возле кнопки «Пуск») и вводим в строку фразу «Панель управления» , после чего переходим в непосредственно сам пункт «Панель управления» .

Читайте также: