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

.NET程序编译后SQLite连接报错:Value cannot be null. (Parameter 'path1')

解决方案
  • 检查连接字符串的隐性路径解析
    即使你没手动调用Path.Combine,SQLite内部解析连接字符串时可能会触发该方法。如果连接字符串使用了|DataDirectory|\xxx.db这类占位符,编译后|DataDirectory|可能未正确赋值,导致内部传入空参数。解决方式:

    • 显式设置数据目录:AppDomain.CurrentDomain.SetData("DataDirectory", @"C:\你的数据库绝对路径");
    • 直接在连接字符串中使用绝对路径,避免占位符。
  • 确认NuGet包与.NET版本兼容
    检查所用SQLite NuGet包(如System.Data.SQLite.Core或Microsoft.Data.Sqlite)的版本是否适配你的.NET框架版本。比如.NET 6+需使用对应兼容的稳定版包,旧版本可能存在编译后路径解析的bug,尝试升级或降级到匹配版本。

  • 排查编译后运行环境的路径变量
    调试和编译后的运行环境可能存在差异,部分路径相关变量可能为空。在代码中添加日志输出:

    • 输出数据库路径变量值
    • 输出当前工作目录:Directory.GetCurrentDirectory()
      对比调试和编译后的输出,确认变量是否一致。
  • 检查连接字符串格式
    连接字符串中的多余空格、拼写错误或格式问题可能导致SQLite内部解析出错,间接触发Path.Combine异常。确保连接字符串格式规范,例如:

    string connStr = "Data Source=C:\\MyApp\\mydb.db;Version=3;";
    
  • 彻底清理编译缓存
    手动删除项目的bin和obj目录,再重新编译项目,避免残留的旧编译文件引发异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 12:52:11