【问题标题】:NLog and SQLite ErrorNLog 和 SQLite 错误
【发布时间】:2021-09-12 01:26:01
【问题描述】:

我正在尝试让 NLog 正确登录到 SQLite 数据库。
除了NLog,我还可以与 SQLite 数据库进行交互。

当我强制 NLog 进行内部日志记录时,我看到以下错误:

初始化目标数据库 Target[db] System.TypeLoadException 时出错:无法从程序集“NLog,Version=4.0.0.0,Culture=neutral,PublicKeyToken=5120e14c03d0593c”加载类型“System.Data.SQLite”。

我的NLog 配置有以下参数:

  • dbProvider="System.Data.SQLite"keepConnection="false"
  • connectionString="Data Source=${basedir}\Database.s3db;"
  • commandText="INSERT into Log(Timestamp, Loglevel, Logger, Callsite, Message) values(@Timestamp, @Loglevel, @Logger, @Callsite, @Message)"

我错过了什么?

【问题讨论】:

  • 如果您在 VS 之外运行此程序,您是否确保引用的 dll 已将“本地复制”设置为 true?
  • 感谢您的回复。我在 VS 中运行。这仍然有意义吗?
  • 在这种情况下,不。对不起。您可能想要检查您正在运行的 CLR 版本是否是 DLL 的正确版本(尝试在项目的构建选项卡上更改 .NET 版本和配置文件)

标签: c# sqlite nlog


【解决方案1】:

我将 NLog 配置更改为指向 System.Data.SQLite.EF6 作为 dbProvider,它现在正在工作。

【讨论】:

    【解决方案2】:

    这是一个非常古老的问题,但如果其他人面临同样的问题,我的回答可能会有所帮助:

    在我的情况下,NLog.config 文件中的版本号不是我添加的 System.Data.SQLite.dll 的问题。这样做:

    • 右键单击 System.Data.SQLite.dll,然后单击属性
    • 点击详情查看实际版本号
    • 在 NLog.config 文件中写入正确的版本

    【讨论】:

      【解决方案3】:

      安装以下 nuget 包: 安装包 System.Data.SQLite -Version 1.0.115

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-03
        • 1970-01-01
        • 2018-12-22
        相关资源
        最近更新 更多