Не удалось загрузить DLL "sqlite3": указанный модуль не найден. (Исключение из HRESULT: 0x8007007E)
В настоящее время я использую SQLite для Windows Forms, но при запуске проекта он показывает ошибку:
Невозможно загрузить DLL 'sqlite3': указанный модуль не найден. (Исключение из HRESULT: 0x8007007E)
Я добавил DLL из System.Data.SQLite.dll
, но он показывает ту же ошибку. Пожалуйста, может кто-нибудь помочь мне, давая идеальный ответ на эту проблему? Спасибо заранее
Ответы
Ответ 1
Возможно, вы не добавили версию для правильной платформы? SQLite распространяется с одной сборкой X86 (32 бит) и одной сборкой по протоколу X64 (64 бит).
Если ваше приложение представляет собой 32-разрядное приложение, вы должны использовать файл System.Data.SQLite.dll, расположенный в каталоге bin в дистрибутиве System.Data.SQLite, если это 64-разрядное приложение, вы должны использовать его в "bin\x64".
Однако, глядя на сообщение об ошибке, я не уверен, что это так. Вы создаете собственные вызовы SQLite? В этом случае вам, возможно, придется переименовать dll в sqlite3.dll.
Как вы знаете, System.Data.SQLite - это набор исходного родного sqlite3.dll и управляемого поставщика ADO.NET(если вы не используете какую-либо старую версию, и в этом случае я не уверен - вам может понадобиться родной sqlite3.dll отдельно)
Ответ 2
Это должно устранить мою проблему.
Добавьте следующие DLL.
![enter image description here]()
Ответ 3
Используйте проект "Добавить существующий элемент" и выберите sqlite3.dll "Как ссылка". Нажмите "ОК". Выберите DLL в проекте и установите для параметра "Копировать локальное" значение "Истина".
Ответ 4
В моем случае я работаю над проектом UWP. Мне пришлось добавить ссылку на Visual С++ 2015 Runtime для Universal Windows Platform Apps, и ошибка исчезла. Его можно добавить в диспетчер ссылок в Universal Windows > Extensions. Подробное решение можно найти здесь.
Ответ 5
У меня была такая же проблема, когда я загрузил последний поставщик sqlite, и я попробовал решение от здесь, но он не работал, , поэтому я загрузил более раннюю версию и отлично работает.
Ответ 6
Если эта проблема возникла недавно - после присоединения procmon
к моему процессу, я обнаружил, что последние версии System.Data.SQLite libs (те, что созданы для .NET4) имеют зависимость от среды выполнения MSVC 2010, а серверы didn ' t это установлено. К счастью, это можно снести с веб-сайта Microsoft.
Ответ 7
Скопируйте файл sqlite3.dll в папку System32. Это сработало для меня. И спасибо тоже!
Ответ 8
Я создаю собственное приложение Windows Phone 8.1 с PCL и проектом Droid. У меня была такая же ошибка, и я поставил ссылку на правильную версию sqlite3.dll(wpa81) и все сработало.
Ответ 9
Особенно, если вы обновили версию RTM для Visual Studio 2015 и разрабатываете приложения для универсальных приложений Windows, попробуйте удалить расширение SQLite для расширения универсальной платформы приложений и переустановку (см. http://sqlite.org/download.html).
Ответ 10
У меня была такая же проблема для проекта UWP в приложении Xamarin.Forms.
Добавление ссылки на "SQLite для универсальной платформы Windows" в проект UWP решило проблему.
![введите описание изображения здесь]()
Ответ 11
Все они кажутся решениями для определенных ситуаций. Для меня и для @Marlon Ticao на этой странице приложение просто не может найти DLL.
Существует 2 решения. Скопируйте его в каталог, который находится в вашем пути (например, System32), или вы можете скопировать его в тот же каталог, в котором находится ваш исполняемый файл.
Ответ 12
После борьбы в течение 3 дней, наконец, нашел способ решить.
По состоянию на март 2018 года, если вы попытаетесь использовать sqlite-net через Nuget Package Manager, он добавит два файла и несколько ссылочных DLL к вашему решению независимо от типа проекта UWP или Android и т.д.
![введите описание изображения здесь]()
И после этого, если вы скомпилируете и запустите решение, произойдет сбой с исключением
Невозможно загрузить DLL 'sqlite3': указанный модуль не найден. (Исключение из HRESULT: 0x8007007E)
Это связано с тем, что он не может загрузить sqlite3.dll, поскольку он не добавлен в решение через manger пакета NUGET. Поэтому вам нужно добавить его вручную.
Чтобы добавить, сначала определите, что ваш проект 32 бит или 64 бит, а затем загрузите соответствующие предварительно скомпилированные бинарные файлы для Windows Runtime из https://www.sqlite.org/download.html и добавьте их вручную (скопируйте и вставьте).
Итак, теперь ваше решение будет выглядеть ниже, и оно будет работать без проблем.
![введите описание изображения здесь]()