问题标签 [badimageformatexception]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1673 浏览

c#-4.0 - 尝试加载 oracle 客户端库抛出 badimageformatexception

我正在使用 Visual Studio 2012。我安装了 Oracle 64 位客户端。我的操作系统是Win7 64位。我想添加一个新的 Oracle DB 连接,但是当我输入用户名密码等并单击“测试连接”按钮时,我看到此错误:

但我的 Oracle 客户端是 64 位的。我的系统上没有任何 32 位组件。

我在添加到我的参考资料中的 Oracle.DataAccess.dll 上也有问题。我尝试了任何 CPU、x86i x64 平台的每一种组合,但没有任何改变。每次我得到 BadImageFormatException。

我搜索了其他问题,但没有任何改变。我还尝试了 IIS 应用程序池将 32 位应用程序属性启用为 True,但它不起作用。

有什么建议么?我还能尝试什么?

0 投票
0 回答
979 浏览

c++-cli - 带有 C++/CLI 层的 .Net 可执行文件获取 System.BadImageFormatException

对于处理 c++/cli 的任何人来说,这个问题似乎都很常见,但我在典型的解析路径中遗漏了一些东西。我有一个 .Net 程序集 PHD.exe,它引用了一个 c++/CLI dll。此 DLL 动态链接许多 win32 本机 dll。

异常文本:

主窗口异常:“X.BLCInterfaceBehavior”的类型初始化程序引发异常。System.BadImageFormatException:无法加载文件或程序集“CppCLI.dll”或其依赖项之一。不是有效的Win32应用程序。(来自 HRESULT 的异常:0x800700C1)

按照关于 SO 的其他建议,我检查了我的可执行文件的目标类型。右键单击 > 属性 > 构建选项卡 > 平台 = x86。平台目标:x86。

同样,我检查 c++/cli dll 的项目属性(我希望这是查看的正确位置):属性 > 配置属性 > 链接器 > 目标机器 = MachineX86

我在 CppCLI.dll 上运行 DependencyWalker,得到以下错误:

错误:由于隐式依赖模块中缺少导出函数,至少一个模块具有未解析的导入。

错误:发现具有不同 CPU 类型的模块。警告:由于延迟加载依赖模块中缺少导出功能,至少有一个模块存在未解析的导入。

我不确定如何确定哪个 DLL 缺少预期的导出功能,或者这是否只是 x64 系统上的depends.exe 怪癖之一。同样的事情也适用于具有不同 cpu 类型的模块 - 我想我已经在 SO 上看到了“忽略该”消息。

我针对 winDBG 运行了该应用程序,发现一些 Windows DLL 正在从 SysWOW64 加载——这似乎是错误的。一些例子:

模组加载:75880000 75910000 C:\Windows\syswow64\GDI32.dll

模组加载:753f0000 753fa000 C:\Windows\syswow64\LPK.dll

模组加载:76c60000 76cfd000 C:\Windows\syswow64\USP10.dll

模组加载:76d00000 76da0000 C:\Windows\syswow64\ADVAPI32.dll

模组加载:75fe0000 76c2a000 C:\Windows\syswow64\SHELL32.dll

这些不应该从 System32 加载吗?

最后 WinDBG 显示了异常,但我没有看到任何有用的东西:

ModLoad:6dfc0000 6e060000 GambitManagedWrapper.dll

ModLoad:01270000 01310000 GambitManagedWrapper.dll

模组加载:72eb0000 72ebe000 C:\Windows\SysWOW64\RpcRtRemote.dll

模组加载:6dfc0000 6e060000 C:\Gambit\GambitManagedWrapper.dll

(fbc.ebc):C++ EH 异常 - 代码 e06d7363(第一次机会)

(fbc.ebc):C++ EH 异常 - 代码 e06d7363(第一次机会)

(fbc.ebc):C++ EH 异常 - 代码 e06d7363(第一次机会)

(fbc.ebc):C++ EH 异常 - 代码 e06d7363(第一次机会)

(fbc.ebc):C++ EH 异常 - 代码 e06d7363(第一次机会)

(fbc.ebc):CLR 异常 - 代码 e0434352(第一次机会)

(fbc.ebc):C++ EH 异常 - 代码 e06d7363(第一次机会)

(fbc.ebc):CLR 异常 - 代码 e0434352(第一次机会)

(fbc.ebc):CLR 异常 - 代码 e0434352(第一次机会)

此外,我在 winDBG 中运行了这个命令,这进一步让我感到困惑:

effmach # 有效机器:x86 兼容(x86)

不太确定从这里去哪里,并会感谢任何和所有的建议。

0 投票
0 回答
398 浏览

reference - 参考项目在我自己的解决方案中导致“无法加载文件或程序集”

我的解决方案中有 2 个项目。在我的第二个项目中,我想使用我第一个项目中的一些类。我在我的第二个项目中添加了对我的第一个项目的引用,但是当我尝试从我的第一个项目中调用/调用/实例化我的第二个项目中的任何对象时,我得到一个:

无法加载文件或程序集“MyFirstProject,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null”或其依赖项之一。试图加载格式不正确的程序。

例如,如果我尝试创建一个 List 它会抛出上面的错误

有任何想法吗?托马斯

0 投票
2 回答
1896 浏览

c# - 无法在 Visual Studio 2010 中加载文件或程序集

我的项目使用另一个 lib 项目作为参考。

尝试在“发布”模式下运行项目时出现此错误,在“调试”模式下它工作正常。

它说它无法加载 lib 项目,因为:

0 投票
0 回答
207 浏览

.net - 运行 F# 应用程序时出现 BadImageFormatException

将 VS2013 与 .NET 4.0 一起使用,我编译了“TrueSkill Through Time”贝叶斯推理代码的更新版本中提供的示例代码。

但是,当我尝试针对小型数据集运行它时,ChessAnalysis.exe SmallChessBase.csv我总是会System.BadImageFormatException遇到“运行计划”。

我尝试将应用程序编译为 Any CPU、x64、x86 和 AnyCPU Prefer 32 位,但没有任何帮助。

我该如何解决?

0 投票
4 回答
20557 浏览

c# - 运行时异常 System.BadImageFormatException

请帮忙,我已经尝试了我能想到的所有其他方法来解决这个问题。

在您回复之前,请注意:

我已经从 StackOverflow.com 上的其他问题和网络上的 else-ware 中尽我所能。例如但不限于:将构建配置从:“Any CPU”更改为“x64”,甚至更改为“x86”。并且还将目标构建从 .NET 4.0 更改为 .NET 3.5(这不起作用,因为我使用的是需要 .NET 4.0 的 System.Windows.Interactivity)所以我宁愿坚持使用 .NET 4.0。所以请不要回答告诉我这样做,因为我已经尝试过各种组合。


我在 VS2013 中有一个名为 TimersXP 的项目,它是 CodePlex.com 上的一个开源项目: https ://timersxp.codeplex.com/

它构建时没有任何错误,但我得到一个运行时异常:System.BadImageFormatException 未处理消息:未知模块中发生“System.BadImageFormatException”类型的未处理异常。附加信息:无法加载文件或程序集“TimersXP.exe”或其依赖项之一。此程序集由比当前加载的运行时更新的运行时构建,无法加载。

有点历史,该项目最初是 .NET 3.5,但是当我发现我必须添加 System.Windows.Interactivity 并且必须支持 .NET 4.0 时,我提高了版本号。

是的,我知道它说的是版本 4.5.0.0。我也尝试了这些组合。除非我错过了一些与预期不同的组合。

它是开源的,所以该项目的所有代码都可用,有人可以帮我吗?恐怕我没有主意了。

也许在 App.config 文件中这个版本号?

我不想只浏览所有代码并将它说版本的每个地方都更改为 3.5 或 4.0 或 4.5。这似乎不是一个好主意。

像往常一样,一旦我看到它,我可能想踢自己!

0 投票
2 回答
5407 浏览

c# - System.BadImageFormatException 未处理 - 简单修复

是我的错误的简短视频。

很明显,我在 32 位和 64 位之间有问题。但是,我找不到任何足以让我在 Visual Studio 2012 中完成解决方案的东西。

谁能给我更详细的解释,说明我的设置是什么以及如何更改?

0 投票
0 回答
429 浏览

unit-testing - 使用 Autofixture GuardClauseAssertion 在单元测试中引发 System.BadImageFormatException

我有一个用 xUnit、AutoFixture 编写的单元测试,使用AutoFixture Idioms GuardClauseAssertion检查我的程序集类中的保护子句:

我使用过滤器断言单元测试只关注我编写的适当类,并使用提示类型来定位特定程序集。我在 using 中传递了这些提示类型InlineData(typeof(...)),以便对每种提示类型进行一次测试。

在进行了几次测试运行后,测试通过了 5 次测试中的 3 次,这些测试指出了我忘记放置空保护的代码,但其他两个测试产生以下异常:

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

System.Reflection.Emit.TypeBuilder.TermCreateClass(RuntimeModule module, Int32 tk, ObjectHandleOnStack type) 在 System.Reflection.Emit.TypeBuilder.CreateTypeNoLock() 在 System.Reflection.Emit.TypeBuilder.CreateType() 在 Ploeh.AutoFixture.Idioms。 GuardClauseAssertion.AutoGenericArgument.get_Value() 在 System.Linq.Enumerable.WhereSelectArrayIterator 2.MoveNext() at System.Linq.Buffer1..ctor(IEnumerable1 source) at System.Linq.Enumerable.ToArray(IEnumerable1 来源)在 Ploeh.AutoFixture.Idioms.IdiomaticAssertion.Verify(MethodInfo[] methodInfos) 在 Ploeh.AutoFixture.Idioms.GuardClauseAssertion.Verify(MethodInfo methodInfo) 在 Ploeh.AutoFixture.Idioms.GuardClauseAssertion.AutoGenericMethod.get_Value()。 AutoFixture.Idioms.IdiomaticAssertion.Verify(Type type) 在 NullGuardTests.GuardAgainstNullArgumentsInNonModelAssemblies(Type assemblyHintType) 在 NullGuardTests.cs: line 58

我添加TracingBehaviorIFixture实例以获得更多可见性,它显示:

……………………………………………………………………………………………………………………………………………………………………

我查看了这条长跟踪中的第一个项目和最后一个项目,试图找出它们与成功测试跟踪中显示的第一个/最后一个项目有何不同,但我无法找到任何有意义的差异。

我假设跟踪中的最后一项是IFixture异常之前的最后一个活动。

除了我迄今为止所做的之外,我如何更深入地了解这样的异常?

  • 每个目标程序集都以 .NET 4.0 为目标
  • 每个目标程序集在构建配置 (AnyCPU) 中都有相同的设置
  • 每个目标程序集都是用 VB.NET 编写的(尽管单元测试是用 C# 编写的)

想法?先感谢您。

2014 年 3 月 29 日更新

我仍然无法弄清楚这里发生了什么,但我希望留下这个问题至少是对其他有同样问题的人的理智检查,他们在这里发现了这个问题。在工作量允许的情况下,我将努力提交一份复制品。

0 投票
2 回答
562 浏览

c# - 运行应用程序时出现 BadImageFormatException

运行具有该配置的 C#/VB SmartClient 应用程序时出现BadImageFormatException 。Any CPU如果我使用x86配置,那么它运行良好。这是一个旧的遗留项目,我偶尔需要修改它并且我不知道历史,所以我只能猜测包含 32 位本机代码的 dll 会导致此错误。这一切都是有道理的,除了当配置为Debug&AnyCPU时它运行,只有当配置为Release&时AnyCPU它才会失败。我发现 Debug.cfg.xml 和 Release.cfg.xml 文件没有显着差异。

谁能说出为什么它会在Debug配置中运行?由于这行得通,我想知道是否有可能让它在 x64(即 AnyCPU)中运行

从 app.config:

0 投票
0 回答
600 浏览

asp.net - 试图加载格式不正确的程序。

无论出于何种原因,当我们开始在我们的一台服务器上收到此异常消息时,都是 Window server 2008 R2。几周前该网站还不错,我们不知道发生了什么变化。应用程序池已启用 32 位应用程序设置为 true。我们可以将相同的源代码部署到另一台服务器,它可以工作,但反之则不行。

有人有想法么?

说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.BadImageFormatException:尝试加载格式不正确的程序。(来自 HRESULT 的异常:0x8007000B)

BadImageFormatException:试图加载格式不正确的程序。(HRESULT 异常:0x8007000B)] System.Data.Entity.Internal.InterceptableDbCommand.ExecuteNonQuery() +0 System.Data.Entity.Core.Mapping.Update.Internal.DynamicUpdateCommand.Execute(字典2 identifierValues, List1 generatedValues)+645 System.Data .Entity.Core.Mapping.Update.Internal.UpdateTranslator.Update() +140