当我包含一个库时,我收到以下错误System.BadImageFormatException

时间:2010-11-26 08:28:12

标签: c# .net

发生了类型为“System.BadImageFormatException”的未处理异常。将目标更改为x86后,就可以了。我想知道它是否只是32位的库。如何使其与64位一起使用?

2 个答案:

答案 0 :(得分:2)

该库可能以x86为目标。你有来源还是第三方?如果可能,您需要将其重新编译为AnyCPU。您可以尝试使用CorFlags将其更改为AnyCPU,但仅当库不是专门用于x86时,它才有效。

我前段时间提了一下信息,也许它会很有用:Moving from 32-bit applications to 64-bit applications

答案 1 :(得分:0)

Unfortunatley你不能将64位和32位本机(非托管)代码混合在一起。 我对包含本机代码的dotnet-Sqlite-assembly有同样的问题。

>将目标更改为x86后,就可以了。

这表明您的程序使用的库/ dll具有一些x86本机代码。如果您将该库编译为64位并将其复制到64位bin目录,那么您的程序可能会在64位下运行。 (至少那与我的sqlite问题有关)