相关疑难解决方法(0)

"即使平台相同,也试图加载格式不正确的程序"

我在64位系统上调用32位非托管DLL的函数.我得到的是:

BadImageFormatException:尝试加载格式不正确的程序.(HRESULT异常:0x8007000B)

起初,我将我的项目设置为Any CPU平台,因此我将它们都更改为x86,但此错误仍在发生.这真的是我所知道的唯一解决方案.

DLL没有损坏或任何东西,因为我可以将它们与其他程序一起使用(我没有源代码).我想也许它没有找到依赖,但我检查了,他们都在那里.另外,DllNotFoundException在这种情况下不会抛出一个吗?

我还可以做些什么?在您说"使用64位非托管DLL"之前,让我指出没有一个.;)

.net 64-bit pinvoke 32-bit badimageformatexception

448
推荐指数
11
解决办法
46万
查看次数

无法加载文件或程序集...尝试加载格式不正确的程序(System.BadImageFormatException)

我有两个项目,ProjectAProjectB. ProjectB是一个控制台应用程序,依赖于ProjectA.昨天,一切都运转良好,但今天突然我跑了,ProjectB我得到了这个:

BadImageFormatException未处理:
无法加载文件或程序集"ProjectA,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null"或其依赖项之一.尝试加载格式不正确的程序.

两者都只是常规项目,不依赖于任何其他非.Net项目.两者都是.Net - 没有本机代码,也没有P/Invoke.我有其他项目依赖ProjectA并仍然工作得很好.

我尝试过的事情:

  • 确保两个项目都设置为"任何CPU",并选中" 构建"复选框.他们是.
  • 确保两个项目都针对相同的目标框架(.Net 4.0 Client Profile).
  • 在ProjectB - >引用 - > ProjectA - >属性下,确保"复制本地"设置为"True" _ (我验证正在正确复制ProjectA.dll)
  • 清理/重建解决方案.我甚至尝试手动删除两个项目中的/ bin和/ obj文件夹.
  • 重新启动Visual Studio.重启我的电脑.
  • 查看存储库的全新副本.

但我仍然得到同样的错误.我不知道我做了什么导致这个,也不知道如何解决它.有任何想法吗?

c# exception console-application badimageformatexception

376
推荐指数
10
解决办法
43万
查看次数

如何确定.NET程序集是为x86还是x64构建的?

我有一个任意的.NET程序集列表.

我需要以编程方式检查每个DLL是否是为x86构建的(而不是x64或任何CPU).这可能吗?

.net 64-bit x86 assemblies x86-64

312
推荐指数
8
解决办法
16万
查看次数

无法加载文件或程序集"xxx"或其依赖项之一.尝试加载格式不正确的程序

我刚刚将Subversion的修订版检出到了一个新文件夹.打开解决方案,我在运行时得到这个:

无法加载文件或程序集"xxxx"或其依赖项之一.尝试加载格式不正确的程序.

这与我前一段时间检查过的代码相同.为什么现在这样做?我现在也在xxx项目的bin文件夹中看到Debug x86而不仅仅是Debug.什么是Debug x86,为什么我不像我以前在bin文件夹中那样只调试Debug?

c#

185
推荐指数
6
解决办法
14万
查看次数

System.BadImageFormatException尝试加载格式不正确的程序

我正在为另一个基于公共.NET API的程序编写插件.通常,这些插件是通过创建引用API程序集的类库DLL来创建的.然后,通过继承API程序集中的基本命令类来创建命令类.然后将应用程序设置为引用插件DLL文件,然后还负责在用户请求时实际启动自定义命令类.

但是,现在我正在尝试通过自动化代码生成System.CodeDOM,并且想要创建一个简单的控制台应用程序,该应用程序根据API程序集中的类型自动生成新的类类型.

然而,当我尝试运行我的应用程序时,我得到以下异常.

System.BadImageFormatException未处理消息:无法加载文件或程序集"RevitAPI,Version = 2011.0.0.0,Culture = neutral,PublicKeyToken = null"或其依赖项之一.尝试加载格式不正确的程序.

通常我需要将插件程序集的目标框架设置为3.5.但是现在我发现如果我将控制台应用程序的目标框架设置为2.0,上面的错误就会消失.但是,我的控制台应用程序已经引用了我的目标框架设置为3.5的其他类库.而且我真的不想围绕2.0框架重写它们.

.net revit badimageformatexception revit-api target-framework

42
推荐指数
4
解决办法
9万
查看次数