Microsoft.Data.SQLite: Library e_sqlite3 not found

0

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:\Users\FaqeerHussain\source\repos\sqliteTest\sqliteTest\Controllers\ValuesController.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 bin\runtimes\win-x64\native and also in bin\runtimes\win-x86\native 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?

c#
asp.net
.net
sqlite
iis
asked on Stack Overflow Jan 16, 2021 by FAQi • edited Jan 19, 2021 by FAQi

2 Answers

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.

enter image description here

answered on Stack Overflow Jan 18, 2021 by samwu
0

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.

answered on Stack Overflow Apr 6, 2021 by Shahin Dohan

User contributions licensed under CC BY-SA 3.0