C#使用Sqlite.dll问题记录

2018年5月14日

C#添加 Sqlite.dll 引用

  1. 使用nuget,操作最为简单,同时支持32位和64位系统,推荐。缺点是多了 ef、linq等dll文件。
  2. 手动添加 sqlite.dll。缺点配置繁琐;优点,只需要 SQLite.Interop.dllSystem.Data.SQLite.dll 两个文件

这里只介绍第二种方法,步骤如下:

  1. 官网 wiki 下载,下载 .NET 2.0 SP2 预编译静态链接库(Precompiled Statically-Linked Binaries for 64-bit Windows (.NET Framework 2.0 SP2))的 binary 版

输入图片说明

  1. 配置 config 文件,具体参考已下载 zip 文件里的 test.exe.config 代码
<system.data>
    <DbProviderFactories>
        <remove invariant="System.Data.SQLite" />
        <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".NET Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite, Version=1.0.108.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" />
    </DbProviderFactories>
</system.data>

异常来自 HRESULT:0x8007000B

System.BadImageFormatException:“试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)”

输入图片说明

原因:C# 在调用C++dll时,可能会出现 :试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)这个错误。

实际情况:生成平台目标为AnyCPU(首选32) 输入图片说明

解决:首选32 去勾,或者生成平台改为 x64。懒人方法是使用nuget添加 sqlite 引用。

转载于:https://my.oschina.net/u/868789/blog/1811984

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值