SQLite异常报错

其他信息: 未能加载文件或程序集“System.Data.SQLite, Version=1.0.103.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139”或它的某一个依赖项。试图加载格式不正确的程序。

System.BadImageFormatException: 未能加载文件或程序集“System.Data.SQLite.dll”或它的某一个依赖项。 不是有效的 Win32 应用程序。 (异常来自 HRESULT:0x800700C1)

以上报错都是由于没有正确的引用System.Data.SQLite.dll

在网上找了很多信息,都是很长的文字,有的说安装32位或64位的SQLite环境,这个确实管用,但是安装时还要安装SQLite 32位或64位环境,这个我很不喜欢,今天终于把这个问题解决了 并且同时适用 32位和64位系统

我是一个理科生,不太喜欢长篇文字,喜欢简单

如果一个.NET应用要自适应32位/64位系统,只需要在项目的“目标平台”设置为“Any CPU”。但是如果应用中使用了SQLite,情况就不同了。

SQLite的.NET开发包来自是System.Data.SQLite,完成兼容ADO.NET接口,也提供了Linq和Entity Framework 6实现。但这不重要,重要的是System.Data.SQLite是由两部分代码组成的,一部分是非托管的C++代码实现,一部分是托管代码与.NET 框架接口。由于非托管代码不能构建成“Any CPU”的,所以System.Data.SQLite的下载页面的每个包都是按32位或64位系统进行了区分的。

言归正传,如果要使用“Any CPU”的System.Data.SQLite.dll,就必须使用不带“bundle”字样,即非混合编译的二进制包。

非混合编译的二进制包有System.Data.SQLite.dll和SQLite.Interop.dll两个动态库。按官方说 明,SQLite.Interop.dll是可以放与System.Data.SQLite.dll相同的目录下,也可以放在x86或x64子目录下,由 System.Data.SQLite.dll根据系统类型调用。为了确认,下载如下两个包来进行比较

sqlite-netFx40-binary-x86-2010-1.0.90.0.zip

sqlite-netFx40-binary-x64-2010-1.0.90.0.zip

结果发现只有SQLite.Interop.*不同,其它文件都完全相同

在Visual Studio项目中引用System.Data.SQLite.dll,再将x86\SQLite.Interop.dll和x64 \SQLite.Interop.dll拷贝到项目根目录,包含在项目中,在属性中设置“如果较新则复制”或“始终复制”。生成结果就像这样:

源码实例下载地址  https://pan.baidu.com/s/1xs4qT_dw3eQIdDgrnJ-oIw

c# 未能加载文件或程序集mysql.data,SQLite的C#,.NET应用自适应32位/64位系统(未能加载文件或程序集“System.Data.SQLite.dll)...相关推荐

  1. 安装32位mysql报错_在CentOS中安装32位或64位MySql报错error: Failed dependencies解决办法...

    在CentOS中安装MySql报错error: Failed dependencies解决办法 安装64位MySql报错内容如下: error: Failed dependencies: libaio ...

  2. 64位操作系统注册ocx控件失败,提示:模块加载失败请确保该二进制存储在指定路径中。

    64位操作系统注册ocx控件失败,提示:模块加载失败请确保该二进制存储在指定路径中 我的解决方案: 1.找到位于windows下的syswow64文件夹下的cmd 2.并拷贝需注册的ocx文件到sys ...

  3. mysql 8.0.22_最新版MySQL 8.0.22下载安装超详细教程(Windows 64位)

    前言 前几天下载安装了最新版的MySQL 8.0.22,遇到了不少问题,参考了一些方法,最终得以解决.今天将自己的安装过程记录下来,希望对各位有所帮助. 一.MySQL 8.0.22官网下载 点击进入 ...

  4. mysql shell 1.0.10_MySQL Shell(使用Shell命令管理MySQL)下载 v1.0.10 官方32位+64位Windows版 - 比克尔下载...

    MySQL Shell是一个MySQL数据库的高级命令管理工具,与其它数据库管理工具不同的是,该工具不仅支持SQL语言,可以使用Shell命令来管理MySQL的功能,支持JavaScript以及Pyt ...

  5. itunes未能连接到iphone_iTunes下载_苹果iTunes官方下载「32位|64位」

    iTunes是苹果官方推出的Apple官方数字媒体播放与管理应用程序.苹果iTunes官方下载中文版能将您所有的媒体文件和应用收藏导入iPad和iPhone,您还可以通过它购买应用.数字音乐.视频.电 ...

  6. mysql8.0.13 32位下载_MySQL8.0下载-MySQL数据库8.0下载 v8.0.11官方版(32位/64位)--pc6下载站...

    mysql是一款数据库管理系统,mysql一般网站开发者或者数据库开发者会用到,mysql拥有体积小巧.读取和存储速度快的特点,新版本完全脱了MylSAM存储引擎,改善了扫描性能,同时还重构了sql分 ...

  7. 红帽企业linux 6.4 64位上实现mysql 5.6主从复制_红帽企业Linux 6.4 64位上实现MySQL 5.6主从复制...

    ssl加密复制实现 ssl加密复制是生产环境中对数据安全性的一个保障,配置过程也比较简单,之前在前面的文章中都有对ssl加密实现有详细介绍这里就不再过多赘述了 准备私有CA # mkdir ca # ...

  8. mysql数据库64位下载_MySQL数据库下载-MySQL数据库v8.0.12 官方最新版(32位/64位)-ucbug软件站...

    使用方法 1.运行安装包,勾选同意,Next 2.选择安装类型 第一个选项包含了一些MySQL其他组件,如果只安装MySQL数据库,选择第二项Server only就行.这里我直接选择默认的Devel ...

  9. vc 6.0与mysql win10_vc 6.0官方下载win10-vc 6.0 win10 64位下载中文完整版-西西软件下载...

    vc 6.0 win10 64位经测试可完美运行且兼容性良好,无论是台式机还是笔记本都可以正常使用.vc++6.0是一款强大的可视化编程工具,是一款优秀专业的C++编译器,界面简洁,易学易用. vc+ ...

最新文章

  1. python中的string模块_有没有可能模仿Python中的string模块?
  2. Tensorflow(0)--Tensorboard
  3. S5PV210裸机之重定位
  4. 综述 | 国防科技大学发布最新「3D点云深度学习」综述论文
  5. Shell基本应用(学习笔记)
  6. 如何有效使用Project
  7. vue.js开发环境部署
  8. 关于高德地图自定义地图样式只显示中国的解决方案
  9. NodeJS集成Redis实战
  10. 图解傅里叶变换(时域频域)
  11. HUAWER 华为5G无线数据终端 和 TP-LINK路由器AX6000连接及注意事项
  12. 微信小程序扫码功能的使用
  13. Newkirk effect and Morton effect
  14. 华为云计算中心 全国部署节点总结
  15. 数据可视化之设计经验分享:轻松三步教你学会制作数据可视化大屏思路
  16. C++的一个指针占内存几个字节?
  17. html flappybird小游戏代码,原生js实现Flappy Bird小游戏
  18. Java常见问题之HashMap扩容、树化、死链
  19. MATLAB-在命令行估计状态空间模型
  20. 迅搜(xunsearch)的安装使用以及操作类分享

热门文章

  1. 用Rational Rose来建立数据库表
  2. pacs dicom3.0 DCMTK EFilm
  3. 中小企业oa系统,全球企业邮箱排名
  4. php中smarty模板的优点,Smarty模板引擎的优点
  5. python脚本百度(SEO)快排--模拟点击最新核心源码
  6. Plist转Json的方法
  7. USB存储设备禁用与解锁
  8. QT帮助文档搜索不到任何东西
  9. PCR606-ASEMI代理长电原厂单向可控硅PCR606
  10. 计算机复试未来规划,2020计算机复试笔试备考策略