zoukankan      html  css  js  c++  java
  • System.Data.SQLite使用中遇到的一点问题解决

    最近项目中要用到本地的文件型数据库,很自然的选择了SQLite。

    以前在.net framework 2.0/3.5下使用过SQLite,一直都没有什么问题。

    不过这次在.net framework 4.0中开始是怎么都不好用,后来看到网上有人说System.Data.SQLite(1.0.66)是在.net framework 2.0平台下编译的,有的给出了在4.0平台下的配置方法,看看这个版本是2010年更新了好像就再也没动过。不会吧,这么好的项目应该不会挂掉吧。又一顿谷哥后,发现了http://system.data.sqlite.org/,果然还活着,而且已经有.net framework 4.0平台下编译的版本了(1.0.81),用上后发现Spring.NET还没有支持到这个版本的DbPrivoder,照着文档,打开Spring.NET源码,按照文档上说的参考以前版本的写了个配置文件(其实就是把以前版本号换了换),F5,可以正常运行了。

    开发中没问题了,但是到客户机器部署时又出问题了,有的机器好用有的机器不好用。单独做了个读写SQLite的小程序,最终确定还是System.Data.SQLite的问题。

    报的异常是 Could not load file or assembly 'System.Data.SQLite.dll' or one of its dependencies.

    但是System.Data.SQLite.dll、System.Data.SQLite.dll两个文件都在啊,用ILSpy打开System.Data.SQLite.dll看了一下,引用的貌似都是framework本身的东西了。

    又回去度娘、谷哥,看到有人说是需要用到SQLite.Interop.dll,于是直接拷贝到目录、引用都试过了,还是报相同的异常。

    也有人说是32、64位的问题,但是我的都是32位的,只是个客户端程序,也没有IIS等环境的影响。

    继续回去找谷哥问问吧,看到stackoverflow有个回答说 System.Data.SQLite.dll is a mixed assembly, i.e. it contains both managed code and native code.,下面还有人说需要安装Microsoft Visual C++ 2010 SP1 Redistributable Package (x86),看起来有点道理,试了一下果然问题解决了。

    一直以来都以为System.Data.SQLite只要安装了.net framework就可以读SQLite数据库了,原来还需要安装Microsoft Visual C++ Redistributable Package啊。

  • 相关阅读:
    【Python编程:从入门到实践】chapter6 字典
    【Python编程:从入门到实践】chapter5 if语句
    【Linux_Unix系统编程】Chapter9 进程凭证
    【Linux_Unix系统编程】Chapter10 时间
    【Linux_Unix系统编程】Chapter8 用户和组
    【Linux_Unix系统编程】chapter7 内存分配
    【Linux_Unix系统编程】chapter6 进程
    书籍 人生
    流程图软件
    技术文章,iOS,iOS开发系列 数学函数
  • 原文地址:https://www.cnblogs.com/llcto/p/2742419.html
Copyright © 2011-2022 走看看