Microsoft.Data.SQLite: Library e_sqlite3 not found

Problem:
I’m trying to develop an ASP.NET MVC (.Net Framework 4.7.2) web app in which I want to use Microsoft.Data.Sqlite version (5.0.2), but when I run it my web app crashes (both in debug IIS Express, and in app.publish on local IIS on Windows 10) at following code line:

SqliteConnection dbConn = new SqliteConnection("Data Source=test.db");

The exception thrown is as under:

System.TypeInitializationException
  HResult=0x80131534
  Message=The type initializer for 'Microsoft.Data.Sqlite.SqliteConnection' threw an exception.
  Source=Microsoft.Data.Sqlite
  StackTrace:
   at Microsoft.Data.Sqlite.SqliteConnection..ctor(String connectionString)
   at sqliteTest.Controllers.ValuesController.Get() in C:UsersFaqeerHussainsourcerepossqliteTestsqliteTestControllersValuesController.cs:line 16
   at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass6_2.<GetExecutor>b__2(Object instance, Object[] methodParameters)
   at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.Execute(Object instance, Object[] arguments)
   at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancellationToken)

  This exception was originally thrown at this call stack:
    [External Code]

Inner Exception 1:
TargetInvocationException: Exception has been thrown by the target of an invocation.

Inner Exception 2:
Exception: Library e_sqlite3 not found

What I’ve tried so far:
Following Inner Exception: Library e_sqlite3 not found tried looking around the ‘bin’ folder, and found that e_sqlite3.dll is already there in binruntimeswin-x64native and also in binruntimeswin-x86native folders, both contain e_sqlite3.dll.
Tried copying manually the above-mentioned x86/x64 e_sqlite3.dll to root bin folder but the error still remains.

What should I do to get Microsoft.Data.Sqlite working in my ASP.NET MVC (.NET Framework 4.7.2) web app?

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

This is because the package of Microsoft.Data.Sqlite is not compatible with the version of .Net Framework. You can try to change the version of NuGet of Microsoft.Data.Sqlite to 2.2.0 to run normally.

Microsoft.Data.SQLite: Library e_sqlite3 not found

Method 2

For anyone else running into this issue, unfortunately it’s a known issue that hasn’t been fixed yet.

In my case I was referencing a .NET Standard 2.0 library that was using Sqlite, from a .NET Framework 4.8 project. I simply changed the library to also target .NET 4.8 as a workaround since it wasn’t being used by any other implementation of .NET.

So I had to change <TargetFramework>netstandard2.0</TargetFramework> to <TargetFramework>net48</TargetFramework> in my Sqlite project.

Method 3

I have also working on to develop an ASP.NET (.Net Framework 4.7) web app in which I have used Microsoft.Data.Sqlite version (5.0.10), but when I run it my web app, it crashes and give me Exception: Library e_sqlite3 not found

I have almost take one and half day to solved this problem. In my case, I have remove dependency library of ‘Microsoft.Data.Sqlite‘ and others such as
Microsoft.Data.Sqlite.Core, SQLitePCLRaw.bundle_e_sqlite3, SQLitePCLRaw.core,
SQLitePCLRaw.lib.e_sqlite3, SQLitePCLRaw.provider.dynamic_cdecl
, etc. from package folder.

Now, I have added new Microsoft.Data.Sqlite with version (6.0.0) along with its dependencies. My app is working fine. (Note: I have only used this library to read SpatiaLite database and to call SpatiaLite function.)

Method 4

I found that the e_sqlite3.dll is located at runtimeswin-x86nativee_sqlite3.dll.
So I created those folders and added the e_sqlite3.dll in the native folder. After that it worked!


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x