C#如何使SQLite程序集既能适应32位系统也能适应64位系统

分享5:

需求:都知道Sqlite3是分32位和64位版本的,那如果将一个Sqlite3.dll文件全适用

分析:Sqlite是种轻量级的数据库文件,使用了混合编程而成的,一部分采用非托管的C++代码实现,一部分采用托管代码与.NET框架接口,由于非托管代码不能构建成“Any CPU”,所有才有系统区分的;

根据查资料得出,不管是32位的还是64位的,除了SQlite.Interop.dll不同外,其他的动态库都一样,按照官方解释,Sqlite.Interop.dll可以放与System.Data.SQLite.dll(这个SQLite文件大概是255k左右(,这个是分隔后的,不要使用错了咯))相同目录下,也可放在x86或x64目录下。因此,我们只需要将System.Data.SQLite.dll文件引入项目中,再将x86\SQLite.Interop.dll和x64\SQLite.Interop.dll拷贝到项目根目录下,即可完成不同系统都可以使用到SQLite了。

至此,附加不同系统都可以使用的SQLite组合包;

  https://files.cnblogs.com/files/ysq0908/SQLite3%E7%BB%84%E5%90%88.rar

原文地址:https://www.cnblogs.com/ysq0908/p/9383025.html

时间: 2024-11-08 22:51:58

C#如何使SQLite程序集既能适应32位系统也能适应64位系统的相关文章

呃,如何使 .NET 程序,在 64位 系统 中,以 32位 模式运行。

其实最简单的方法就是在解决方案中,把平台设为 x86 就好了哈~   但是今天遇到一个第三方的软件,它调用的一个 dll 是 32位 的,可能它没有测试过在 64位 系统下运行的情况,它在编译时是按默认的配置设为了 Any CPU. 但是在 64位 系统中以默认 64位 模式运行时,再调用 32位 的 dll 就报异常了... 于是想到的一个办法就是让它在 64位 系统中,以 32位 模式运行就好了~   在网上搜了一下,没想到 .NET 本身就提供了这个修改工具,叫做 CorFlags.exe

引用64位dll时候出现 未能加载文件或程序集“System.Data.SQLite”或它的某一个依赖项。试图加载格式不正确的程序。

引用64位dll时候出现 未能加载文件或程序集“System.Data.SQLite”或它的某一个依赖项.试图加载格式不正确的程序. 需要在web.config增加配置 <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0"/> </startup>

System.Data.SQLite兼容32位和64位问题

SQLite版本分的很详细,本机是64位在32位会出现问题,经过搜索找到解决方案. 这是我以前写的32位在我现在的机子上的运行报错. 类似这样的. 将当前说明文档的目录下的x64.x86目录和System.Data.SQLite.dll文件复制到您的应用程序根目录中(注意更新引用,引用System.Data.SQLite.dll即可,两目录中的不需要引用,但发布时需打包).如果是WEB网站,则复制到Bin目录下即可,发布时,也注意x64和x86一起打包发布 注意,当前的System.Data.S

SQLite的.NET应用自适应32位/64位系统 z

如果一个.NET应用要自适应32位/64位系统,只需要在项目的“目标平台”设置为“Any CPU”.但是如果应用中使用了SQLite,情况就不同了. SQLite的.NET开发包来自是System.Data.SQLite,完成兼容ADO.NET接口,也提供了Linq和Entity Framework 6实现.但这不重要,重要的是System.Data.SQLite是由两部分代码组成的,一部分是非托管的C++代码实现,一部分是托管代码与.NET 框架接口.由于非托管代码不能构建成“Any CPU”

SQLite For .Net 已经整合了32位和64位

以前引用SQLite.DLL的时候,如果是winform等桌面程序,还要分32位和64位不一样的DLL,但最近已经整合为一个包了 打开vs的程序包管理器控制器,输入: install-package system.data.sqlite   自动安装即可.

警告: 程序集绑定日志记录被关闭(IIS7 64位系统)

部署一个.NET程序在IIS7服务器,出现如下信息: 说明: 执行当前 Web 请求期间,出现未处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息. 异常详细信息: System.BadImageFormatException: 未能加载文件或程序集"XXX"或它的某一个依赖项.试图加载格式不正确的程序. 源错误: 执行当前 Web 请求期间生成了未处理的异常.可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息. 程序集加载跟踪: 下列信息有

Win7 64位 IIS未能加载文件或程序集“System.Data.SQLite”或它的某一个依赖项

未能加载文件或程序集“System.Data.SQLite”或它的某一个依赖项.试图加载格式不正 解决方案: 1.需要在IIS里设置,启用32位应用程序我用的是iis7 把启用32位应用程序的false改为true 2.下载 System.Data.SQLite.dll 的64位驱动. 地址如下: http://www.sqlite.org/download.html Precompiled Binaries For .NEThttp://system.data.sqlite.org/index

Entity Framework 6 Code First 系列:使SQLite.CodeFirst支持DropCreateDatabaseIfModelChanges和RowVersion

没什么好说的,能支持DropCreateDatabaseIfModelChanges和RowVersion的Sqlite谁都想要.EntityFramework7正在添加对Sqlite的支持,虽然EF7不知道猴年马月才能完成正式版,更不知道MySql等第三方提供程序会在什么时候跟进支持,但是EF7中的确出现了Sqlite的相关代码.Sqlite支持EF6的CodeFirst,只是不支持从实体生成数据库,估计有很多人因为这个原因放弃了使用它.现在SQLite.CodeFirst的简单实现可以让我们

windows7 64位操作系统上使vs2010和vs2013能够并存的处理方法

之前机子上是只安装有vs2010,后来在没有卸载vs2010的情况下想装个vs2013,使vs2010与vs2013同时并存在windows764位机上.需要依次安装cn_visual_studio_ultimate_2013_x86_dvd_3009109.iso.vs2013.2.iso和vc_mbcsmfc.exe.在安装过程中遇到的问题有: (1).在用DAEMON Tools Lite工具装载cn_visual_studio_ultimate_2013_x86_dvd_3009109.