首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CorFlags.exe、System.Data.SQLite.dll和BadImageFormatException

CorFlags.exe、System.Data.SQLite.dll和BadImageFormatException
EN

Stack Overflow用户
提问于 2011-01-27 12:52:41
回答 2查看 3.7K关注 0票数 4

CorFlags.exeSystem.Data.SQLite.dll运行http://sqlite.phxsoftware.com/将产生以下输出。

代码语言:javascript
复制
Version   : v2.0.50727
CLR Header: 2.5
PE        : PE32
CorFlags  : 24
ILONLY    : 0
32BIT     : 0
Signed    : 1

如您所见,没有指定32BITPE等于PE32。根据http://blogs.msdn.com/b/gauravseth/archive/2006/03/07/545104.aspx,这意味着程序集是任意的CPU。但是,使用来自64位应用程序的程序集会导致错误:

System.BadImageFormatException:无法加载文件或程序集“System.Data.SQLite”或其依赖项之一。试图加载格式不正确的程序。文件名:“System.Data.SQLite”

如果CorFlags.exe正在报告任何CPU,为什么会出现异常?程序集是否被错误标记为32BIT: 0

我知道有一个64位版本也可用,我只是想知道是什么导致了错误。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-29 20:37:26

您使用的System.Data.SQLite.dll文件是一个混合模式装配,这意味着它不是一个纯.NET代码(参见“ILONLY:0”标志),它还包含非托管机器代码,它不能是“任何CPU”。因此,由于DLL包含32位本机代码,它只能加载到32位进程中,否则会发生BadImageFormatException。

票数 9
EN

Stack Overflow用户

发布于 2011-02-07 19:53:04

如果您从SQLite-1.0.66.0-binaries.zip下载sourceforget.net文件,那么这将包含一个带有System.Data.SQLite.dll文件的bin/x64目录,这正是您要寻找的。

它也有一个Itanium目录。

URL是:

http://sourceforge.net/projects/sqlite-dotnet2/files/SQLite%20for%20ADO.NET%202.0/1.0.66.0/

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4816529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档