You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

传入路径至SQLiteConnection后应用无法找到文件的问题求助

解决SQLite连接时“SQLitePCLRaw.provider.dynamic_cdecl”程序集缺失问题

错误核心说明

你遇到的System.IO.FileNotFoundException并非数据库文件找不到,而是SQLite底层依赖的SQLitePCLRaw.provider.dynamic_cdecl组件缺失或未正确加载——这个组件是SQLite.NET系列库与原生SQLite交互的关键依赖,必须确保其正确部署。

具体解决步骤

  • 重新安装正确的NuGet包组合
    卸载项目中现有不完整的SQLite相关包,直接安装官方推荐的Microsoft.Data.Sqlite包,它会自动处理所有依赖项(包括匹配版本的SQLitePCLRaw组件):

    • NuGet包管理器控制台命令:
      Install-Package Microsoft.Data.Sqlite
      
    • .NET CLI命令:
      dotnet add package Microsoft.Data.Sqlite
      

    如果你使用的是SQLite.NET-PCL,需额外确保同时安装SQLitePCLRaw.provider.dynamic_cdecl和SQLitePCLRaw.lib.e_sqlite3包,且版本统一为错误提示的2.0.3.851。

  • 统一依赖包版本
    打开NuGet包管理器,筛选所有SQLitePCLRaw开头的包,确保它们的版本完全一致(必须匹配错误提示的2.0.3.851),版本不匹配是这类加载错误的常见原因。

  • 验证输出目录的依赖文件
    构建项目后,检查输出目录(如bin/Debug/net6.0)下是否存在:

    • SQLitePCLRaw.provider.dynamic_cdecl.dll
    • 对应平台的原生SQLite库(Windows下为e_sqlite3.dll,Linux下为libe_sqlite3.so,macOS下为libe_sqlite3.dylib)
      若文件缺失,右键项目→属性→生成→确认相关依赖的“复制本地”设置为True,或在NuGet包的“依赖项”设置中确保文件会被复制到输出目录。
  • 数据库路径额外检查
    虽然当前错误与路径无关,但后续连接数据库时可避免路径问题:

    • 使用绝对路径(如@"D:\Projects\YourApp\Data\mydb.db")消除相对路径歧义
    • 调试时确认项目的“工作目录”设置为输出目录(右键项目→属性→调试→工作目录)

内容的提问来源于stack exchange,提问作者ImperialHalCodes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 07:30:50