web-dev-qa-db-fra.com

Incapable de charger DLL 'sqlite3': Le module spécifié est introuvable. (Exception de HRESULT: 0x8007007E)

J'utilise actuellement SQLite pour Windows Forms mais lors de l'exécution du projet, l'erreur suivante s'affiche:

Impossible de charger DLL 'sqlite3': le module spécifié est introuvable. (Exception de HRESULT: 0x8007007E)

J'avais ajouté le DLL de System.Data.SQLite.dll mais il affiche la même erreur. S'il vous plaît, quelqu'un peut-il m'aider en donnant la réponse parfaite à ce problème? Merci d'avance

29
user580927

Peut-être que vous n'avez pas ajouté la version pour la bonne plateforme? SQLite est distribué avec un assemblage X86 (32 bits) et un assemblage X64 (64 bits).

Si votre application est une application 32 bits, vous devez utiliser le fichier System.Data.SQLite.dll situé dans le répertoire "bin" de la distribution System.Data.SQLite. S'il s'agit d'une application 64 bits, utilisez celle de "bin".\x64 ".

Cependant, en regardant le message d'erreur une seconde fois, je ne suis pas sûr que ce soit le cas. Faites-vous des appels natifs vers SQLite? Dans ce cas, vous devrez peut-être renommer la dll en sqlite3.dll. 

Comme vous le savez peut-être, System.Data.SQLite regroupe le fichier sqlite3.dll natif d'origine et un fournisseur ADO.NET géré (à moins que vous n'utilisiez une ancienne version, auquel cas je ne suis pas sûr; vous aurez peut-être besoin du fichier SQL natif. dll séparément)

11
Yhrn

Cela devrait résoudre mon problème . Ajouter les dll suivants.

enter image description here

21
SurenSaluka

Utilisez le projet "Ajouter un élément existant" et sélectionnez le fichier sqlite3.dll "en tant que lien". Cliquez sur OK. Choisissez DLL dans le projet et définissez la valeur "Copie locale" sur True.

12
koleda.andrey

Dans mon cas, je travaille sur un projet UWP. J'ai dû ajouter une référence à Visual C++ 2015 Runtime pour les applications de la plate-forme Windows universelle et l'erreur a disparu. Il peut être ajouté dans le gestionnaire de référence sous Universal Windows> Extensions. Une solution détaillée peut être trouvée ici .

3
testing

J'ai eu le même problème lorsque j'ai téléchargé le dernier fournisseur SQLite et j'ai essayé une solution de ici mais cela n'a pas fonctionné, et j'ai donc téléchargé le version antérieure et tout fonctionne bien.

2
Coder323

J'ai eu ce problème récemment - après avoir attaché procmon à mon processus, j'ai constaté que les dernières bibliothèques System.Data.SQLite (celles construites pour .NET4) ont une dépendance sur le runtime de MSVC 2010 et que les serveurs ne l'avaient pas installée. Fort heureusement, cela peut être retiré sur le site Web de Microsoft .

2
Chris J

Je construis une application Windows Phone 8.1 native avec un projet PCL et Droid. J'ai eu la même erreur et j'ai mis la référence à la bonne version de sqlite3.dll (wpa81) et tout a fonctionné.

1
Danilo

Copiez sqlite3.dll dans le dossier System32. Cela a fonctionné pour moi. Et merci aussi!

1
Marlon Ticao

J'ai eu exactement le même problème pour le projet UWP dans une application Xamarin.Forms . Ajouter une référence à "SQLite for Universal Windows Platform" au projet UWP a résolu le problème .  enter image description here

1
Jean-Daniel Gasser

Surtout si vous avez mis à jour Visual Studio 2015 RTM et que vous développez des applications Windows universelles, essayez de désinstaller l'extension SQLite pour Universal App Platform et de la réinstaller (voir http://sqlite.org/download.html ).

1
matthewsheets

Après avoir lutté pendant 3 jours, finalement trouvé un moyen de résoudre.

À compter de mars 2018, si vous essayez d'utiliser sqlite-net via le gestionnaire de packages Nuget, il ajoute deux fichiers et quelques dll de référence à votre solution, quel que soit le type de projet UWP ou Android, etc.

 enter image description here

Et après cela, si vous compilez et exécutez la solution échouera avec une exception.

Impossible de charger DLL '' sqlite3 ': le module spécifié est introuvable. (Exception de HRESULT: 0x8007007E)} _

En effet, il est impossible de charger sqlite3.dll car il n’est pas ajouté à la solution via le gestionnaire de packages NUGET.Vous devez donc l’ajouter manuellement.

Pour l’ajouter, déterminez d’abord votre projet en 32 ou 64 bits, puis téléchargez les fichiers binaires précompilés respectifs pour Windows Runtime à partir de https://www.sqlite.org/download.html et ajoutez-les manuellement (copiez et collez).

Alors maintenant, votre solution ressemblera à celle ci-dessous et elle fonctionnera sans problème .  enter image description here

0
Hameed Syed

Tout cela semble être une solution à certaines situations. Pour moi et pour @Marlon Ticao sur cette page, l'application ne trouve tout simplement pas la DLL.

Il y a 2 solutions. Copiez-le dans un répertoire qui se trouve dans votre chemin (tel que System32) ou vous pouvez le copier dans le même répertoire que votre exécutable.

0
Jason Geiger

J'ai eu ce problème exact en utilisant un sqlite3.dll construit par une tierce partie - l'application ne se lancerait pas. J'ai utilisé le gestionnaire de dépendances pour constater que ce sqlite3.dll avait une dépendance sur msvcr110.dll. Une fois que j'ai inclus ce fichier, tout allait bien.

0
cbc700