C# Blazor使用SQLite时的DllNotFoundException

后端开发 2026-07-08

我在学习Blazor和数据库,也刚刚开始接触编程。

我创建了一个Blazor WebAssembly项目,使用.NET 10 LTS,并配有一个简单的本地SQLite数据库。

我只是想在项目中使用SQLite,因此安装了 System.Data.SQLite NuGet包。作为新手来说,市场上有这么多SQLite的 NuGet包,真的挺让人困惑该选哪一个。

然后我用了一段简单的代码:

string sqQuery = "SELECT * FROM";

try
{
    SQLiteConnection sqConnection = new SQLiteConnection(@"Data Source=\TalentData\test1.db");
    SQLiteCommand sqCommand = new SQLiteCommand();
}
catch(Exception exept)
{
    debugException = exept.ToString();
}

但我总是得到这个异常:

System.DllNotFoundException: e_sqlite3 at System.Data.SQLite.SQLite3.StaticIsInitialized()

看起来像是缺少了SQLite的一个DLL,该如何修复?

我已经在网上搜索过,但找不到这个问题的解决办法,网上有太多不同的建议。

也尝试了 Microsoft.EntityFrameworkCore.Sqlite 包,不过结果还是同样的错误。

解决方案

在对sqlite进行Google搜索时,显示的第一个结果是 SQLite Home Page。如果前往 SQLite Home Page 并点击 Download,就会看到一个展示多种下载选项的网页,看起来可选项确实很多。

你说你正在使用 .NET 10 LTS。根据 NuGet入门介绍

对于.NET(包括.NET Core),微软支持的共享代码机制是NuGet,它定义了.NET包的创建、托管和使用方式,并为这些角色提供工具。

回到 SQLite下载页面,如果在标题 Precompiled Binaries for .NET 下查看,会看到

请参见 System.Data.SQLite.org 网站。

打开 System.Data.SQLite.org 网站后,可以看到如下内容:

System.Data.SQLite是一个用于SQLite的 ADO.NET提供程序。

如何使用这个库 System.Data.SQLite可在nuget.org上获得。常见用法通常涉及添加两个包,一个是System.Data.SQLite,一个包含SQLite的本机构建。例如:

<ItemGroup> <PackageReference id="System.Data.SQLite" version="2.0.3"/> <PackageReference id="SourceGear.sqlite3" version="3.50.4.5"/> </ItemGroup>

根据文档,应该下载/安装两个 [Nuget包]:

附加资源

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章