无法加载文件或程序集“ xxx”或其依赖项之一。试图加载格式错误的程序


188

我刚刚签出了从Subversion到新文件夹的修订。打开解决方案,运行时得到此信息:

无法加载文件或程序集“ xxxx”或其依赖项之一。试图加载格式错误的程序。

这是我前一段时间检查过的相同代码。为什么现在要这样做?现在,我还看到了xxx项目的bin文件夹中的Debug x86,而不仅仅是Debug。什么是Debug x86?为什么我不像以前一样在bin文件夹中仅拥有Debug?


2
您是否尝试过全部重建?有时,这为我解决了奇怪的依赖性问题……
mezoid

Answers:


246

听起来该项目的一部分仅针对x86构建,而其余部分针对任何CPU / x64构建。这也咬了我。您正在运行x64(或呃... IA64)吗?

检查项目属性,并确保所有内容都为“ Any CPU”构建。如果您使用的是Visual Studio,则可以通过转到屏幕顶部工具栏上的“ x86”或“任何CPU”菜单(“调试” /“发布”菜单旁边)并单击,来检查所有内容。 “配置管理器...”


1
它也位于Project-> Properties-> Build,或Debug-> Properties-> Build。刚刚更新了VS2015,版本14.0.25123.00更新2。此更新于2016年5月10日发布(昨天!)。我发现平台目标设置为x64,这引起了指出的错误。设置为“任何CPU”可修复该问题。
Michael D. O'Connor

179

如果在64位服务器上的IIS 7+中运行站点时收到此错误,则可能是32位的程序集,并且您的应用程序池会将选项“启用32位应用程序”设置为False;将其设置为true并重新启动站点以使其正常运行。


5
@ Mayhem50在这里也一样。这取决于发生错误的位置。如果通过Visual Studio和Cassini Web服务器,则Fraser是正确的。如果它出现在IIS7 +中,尼克斯的答案可能是最可能的解决方法。
卡尔·海因里希·汉克

对我来说,这是一个完美的答案(将站点从x86上的IIS6迁移到x64上的IIS 7)
DrStalker 2013年

是的,做到了。我将网站从x86上的IIS6移到了x64上的IIS 7。非常感谢!
卢卡斯2014年

40

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

他们附带了五个BusinessObjects * .dll文件,但它们都是64位的。

要加载我的网页,我需要单击Tools \ Options,然后在VS2013中更改此设置:

在此处输入图片说明


这个选项对我来说不存在。对于我来说,该屏幕上Visual Studio 2010下的唯一选项是“对新的基于文件的网站和项目使用IIS Express”
Drew Chapin

我在VS 2017 Professional
SKCS Kamal中

33

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


其次。我为我的网站创建了一个新的应用程序池,却忘记了切换此设置。
AlbatrossCafe

1
这也为我解决了。我需要更改的唯一另一件事是将管道更改为集成,因为在应用上述修复程序之后,这也给我带来了错误。
AxleWack

7

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

该站点是一台x64服务器,并且“应用程序池”的“启用32位应用程序”的默认设置为False。并且您有32位程序集

在Visual Studio级别上,此修复程序是:

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

7

确保验证“首选32位”的设置。在我的情况下,Visual Studio 2012默认情况下已选中此设置。尝试使用来自外部DLL的任何内容失败,直到我取消选中“ Prefer 32-bit”为止。

在此处输入图片说明


4

对于某些为x86兼容性而不是任何CPU构建的项目,这绝对是一个问题。如果我不得不猜测,我会说您的项目之间的某些引用可能是在某些bin \ debug文件夹中引用了dll,而不是项目引用。

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

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


0

如果在带有IIS Express的Visual Studio中工作并且发布失败时,请尝试以下操作:在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.