CorFlags.exe,System.Data.SQLite.dll和BadImageFormatException

从http://sqlite.phxsoftware.com/对
System.Data.SQLite.dll
运行CorFlags.exe会产生以下输出。
Version   : v2.0.50727
CLR Header: 2.5
PE        : PE32
CorFlags  : 24
ILONLY    : 0
32BIT     : 0
Signed    : 1
如您所见,未指定
32BIT
PE
等于
PE32
。根据.NET Framework上从32位移动到64位应用程序开发,这意味着程序集是Any CPU。但是,使用64位应用程序中的程序集会导致错误:   System.BadImageFormatException:可以   不加载文件或程序集   'System.Data.SQLite'或其中一个   依赖。试图做到   加载程序不正确   格式。文件名:   'System.Data.SQLite' 如果CorFlags.exe报告任何CPU,为什么会发生异常?装配是否错误地标有
32BIT: 0
? 我知道有一个64位版本也可用,我只是想知道导致错误的原因。     
已邀请:
您正在使用的System.Data.SQLite.dll文件是混合模式程序集,这意味着它不是纯.NET代码(另请参阅“ILONLY:0”标志),它还包含非托管机器代码,但不能是“任何CPU”。因此,由于DLL包含32位本机代码,因此只能将其加载到32位进程中,否则会发生BadImageFormatException。     
如果你从sourceforget.net下载
SQLite-1.0.66.0-binaries.zip
文件,那么它包含一个带有
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/     

要回复问题请先登录注册