我刚刚从Subversion检出一个版本到一个新文件夹。打开解决方案并运行时,出现以下错误:
无法加载文件或程序集“xxxx”或其某个依赖项。尝试加载格式不正确的程序。
这是我之前检入的同样的代码。为什么现在会出现这个错误?我现在还在该xxx项目的bin文件夹中看到Debug x86,而不是像以前一样只有Debug。Debug x86是什么,为什么我在bin文件夹中没有像以前一样只有Debug?
我刚刚从Subversion检出一个版本到一个新文件夹。打开解决方案并运行时,出现以下错误:
无法加载文件或程序集“xxxx”或其某个依赖项。尝试加载格式不正确的程序。
这是我之前检入的同样的代码。为什么现在会出现这个错误?我现在还在该xxx项目的bin文件夹中看到Debug x86,而不是像以前一样只有Debug。Debug x86是什么,为什么我在bin文件夹中没有像以前一样只有Debug?
听起来,项目的一部分仅针对x86构建,而其余部分则针对任何CPU / x64构建。这也影响了我。你正在运行x64(或者... IA64)吗?
请检查项目属性,确保所有内容都被构建为“任何CPU”。如果你在使用Visual Studio,则可以通过在屏幕顶部的工具栏上找到“x86”或“任何CPU”菜单(位于“调试”/“发布”菜单旁边),并点击“配置管理器...”来检查所有内容。
如果你在64位服务器上使用IIS 7+运行网站时出现此错误,你可能有一些32位的程序集,并且你的应用程序池选项“启用32位应用程序”设置为False;将其设置为true并重新启动网站即可解决问题。
打开inetmgr后,进入“应用程序池”->找到您的应用程序池,进入“高级设置”->将选项“启用32位应用程序”设置为true;然后重启IIS。再次检查。
请确保您验证了“首选32位”的设置。在我的情况下,Visual Studio 2012默认勾选了此设置。在未取消“首选32位”之前,尝试使用来自外部DLL的任何内容都会失败。
当一个项目被编译为x86而不是“任何CPU”时,dll会进入bin\x86\debug文件夹,而不是bin\debug(这可能是您的引用所在的位置)。
但无论如何,您应该在您的项目之间使用项目引用。
1.
无法加载文件或程序集...尝试加载格式不正确的程序(System.BadImageFormatException) ,2.
无法加载文件或程序集异常 和3.
即使平台相同,“尝试加载格式不正确的程序” - RBT