无法加载文件或程序集“xxx”或其某个依赖项。 试图加载格式不正确的程序

我刚刚从Subversion签出了一个修订版本到一个新的文件夹。 打开解决scheme,我运行时得到这个:

无法加载文件或程序集“xxxx”或其某个依赖项。 试图加载格式不正确的程序。

这是我刚才查的代码。 为什么现在是这样做? 我现在也看到一个Debug x86,而不是在该项目的bin文件夹中debugging。 什么是debuggingx86,为什么不只是像我以前在bin文件夹debugging?

听起来像项目的一部分是为x86而构build的,其余部分是为任何CPU / x64构build的。 这也是我的。 你正在运行一个x64(或呃… IA64)?

检查项目属性,并确保一切正在build立“任何CPU”。 如果您在Visual Studio中,可以通过在屏幕顶部的工具栏上的“x86”或“任意CPU”菜单(“debugging”/“释放”菜单旁边)检查所有内容,然后单击“configurationpipe理器…”

如果在64位服务器上运行IIS 7 +中的站点时出现此错误,则可能有32位程序集,并且应用程序池将选项“启用32位应用程序”设置为False; 将其设置为true,然后重新启动站点以使其工作。

inetmgr然后进入应用程序池 – >高级设置您的池 – >将选项“启用32位应用程序”设置为true; 并重新启动IIS。 再检查一遍。!

尝试使用可怕的Business Objects 4 for .Net SDK时出现此错误。

他们发布了五个BusinessObjects * .dll文件,但都是64位的。

为了让我的网页加载,我需要点击Tools \ Options ,然后在VS2013中改变这个设置:

在这里输入图像说明

在IIS上运行的应用程序上的BadImageFormatException(不是从VS运行,因为Visual Studio通过使用“任何CPU”构build来修复问题)可能由以下原因引起:

该站点是一个x64服务器,应用程序池默认设置为启用32位应用程序为False。 你有32位程序集

在Visual Studio的层面上,修复是:

  1. 将项目设置“目标CPU”更改为“ANYCPU”

对于一些x86兼容的项目而言,这肯定是一个问题,而不是任何CPU。 如果我不得不猜测,我会说你的项目之间的一些引用可能是引用dll的一些bin \ debug文件夹,而不是项目引用。

当一个项目编译为x86而不是'任何CPU'时,dll会进入bin \ x86 \ debug文件夹而不是bin \ debug(这可能是您的引用所在的位置)。

但无论如何,您应该在项目之间使用项目引用。

确保您validation您的设置为“首选32位”。 在我的情况下,Visual Studio 2012默认情况下检查了这个设置。 试图使用任何外部DLL失败,直到我没有选中“首选32位”

在这里输入图像说明

如果同时在IIS工作和发布失败的Visual Studio中试试这个: 在这里输入图像说明