当前位置: 首页 > news >正文

.NET Framework 4.8 + Microsoft.Data.Sqlite 报 Library e_sqlite3 not found

.NET Framework 4.8 + Microsoft.Data.Sqlite 报 Library e_sqlite3 not found
具体移步:我的博客

提出问题

最近在 .NET Framework 4.8 下使用 Microsoft.Data.Sqlite 时,运行程序报错:

System.Exception: “Library e_sqlite3 not found”

即便安装了 Microsoft.Data.Sqlite 和 SQLitePCLRaw.bundle_e_sqlite3,程序仍找不到 DLL。下面是完整排查和解决方案。

问题原因

  1. native DLL 没部署到输出目录 SQLitePCLRaw.bundle_e_sqlite3 只是包装
  2. 真正提供 DLL 的是 SQLitePCLRaw.lib.e_sqlite3
  3. 传统 .NET Framework 项目不会自动把 DLL 复制到:
    bin\x64\Debug\runtimes\win-x64/native/e_sqlite3.dll
  4. 平台不匹配,DLL 是 64 位,项目必须 Platform target = x64
  5. 缺少 VC++ 运行时:e_sqlite3.dll 依赖 Microsoft Visual C++ Redistributable x64

NuGet 配置

在 packages.config 中保留关键包:

<package id="Microsoft.Data.Sqlite" version="6.0.15" targetFramework="net48" />
<package id="SQLitePCLRaw.bundle_e_sqlite3" version="2.1.10" targetFramework="net48" />  
<package id="SQLitePCLRaw.lib.e_sqlite3" version="2.1.10" targetFramework="net48" />

⚠️ 注意:不要混用多个不同版本的 Microsoft.Data.Sqlite,否则可能导致 native DLL 部署失败。

初始化代码
在 Program.cs 的入口 Main() 中最开始调用:

using SQLitePCL;class Program
{static void Main(string[] args){Batteries_V2.Init();// 你的 Sqlite 相关代码}
}

解决步骤(手动拷贝 DLL)
1、找到 e_sqlite3.dll,路径通常在: packages\SQLitePCLRaw.lib.e_sqlite3.2.1.10\runtimes\winx64\native\e_sqlite3.dll
2、拷贝到你的项目输出目录:
Simulated_LoginRegi\bin\x64\Debug
或者按照报错路径创建:
Simulated_LoginRegi\bin\x64\Debug\runtimes\win-x64\native\并放入 e_sqlite3.dll。
3、确认 Platform target = x64
4、安装 VC++ Redistributable x64
✅ 这样程序就可以正常运行。

项目目录结构示例
Simulated_LoginRegi/
├─ packages/
│ └─ SQLitePCLRaw.lib.e_sqlite3.2.1.10/
│ └─ runtimes/win-x64/native/e_sqlite3.dll
├─ bin/
│ └─ x64/Debug/
│ ├─ Simulated_LoginRegi.exe
│ └─ e_sqlite3.dll <-- 手动拷贝的位置
├─ Program.cs
├─ Simulated_LoginRegi.csproj
└─ packages.config

总结

根因:.NET Framework 4.8 传统项目不会自动复制 e_sqlite3.dll
解决方法:手动拷贝 DLL + 调用 Batteries_V2.Init() + x64 平台 + 安装 VC++ Redistributable
这是在 .NET Framework 4.8 下使用 Microsoft.Data.Sqlite 的稳定方案

http://www.dtcms.com/a/577257.html

相关文章:

  • 力扣1539. 第 k 个缺失的正整数
  • 珠海移动网站建设公司洛阳网站备案
  • 建站公司最新排名收费做网站
  • MATLAB实现的金字塔光流算法
  • 喜报 | 金口良策荣膺2025金熊猫全球创新创业大赛初创组优秀奖
  • 段描述符(Segment Descriptor)
  • 广西北海网站建设淘宝seo是指
  • MATLAB 使用经验帖
  • 资金盘网站开发多少钱一般纳税人企业所得税怎么征收
  • 先进核技术:未来能源革命的核心驱动力
  • 基于MATLAB的飞机姿态数据分析与轮胎轴承横向位移关键特征识别
  • 网站dns查询超大尺寸哔哩哔哩网站
  • 视频流画线 视频流画多边形
  • TinyTroupe:微软开源的轻量级多智能体“人格”模拟库(一)
  • 【计算机组成原理】计算机系统概述:从发展历程到工作原理
  • DOM Text
  • ARM《10》_01_字符设备驱动基础、学习开发字符驱动内核程序、总结规律和模板
  • 从灵光到落地:用 ModelEngine 可视化编排「会议纪要智能体」——全程 0 代码,2 小时上线!
  • FastAPI 基础入门-章节五(Pydantic的使用)
  • C/C++图形库_EasyX 环境配置(VSCode+MinGW )
  • 优化网站关键词优化page wordpress
  • 简单并完全免费的方法-让夸克网盘不限速下载
  • Vue 指令系统深度解析:条件渲染的艺术(v-if/v-else-if/v-else 与 v-show 的实战指南)
  • 【Linux】Reactor反应堆模式
  • iOS 上架费用全解析 开发者账号、App 审核、工具使用与开心上架(Appuploader)免 Mac 成本优化指南
  • SCADA升级详解5 | SCADA业务报表,优化资源与决策支持
  • 【Python3教程】Python3高级篇之operator模块
  • 同德县wap网站建设公司温州购物网络商城网站设计制作
  • 新晋社区之星何晨阳:从使用者到贡献者,我是如何理解并反哺开源?
  • Spring 框架整合 JUnit 单元测试