2011-11-24 299 views
1

我的程序偶尔与以下错误消息崩溃:BadImageFormatException 0x80131124(Index not found)是什么意思?

System.Reflection.TargetInvocationException:异常已被调用的目标抛出。 ---> System.BadImageFormatException:找不到索引。 (从HRESULT异常:0x80131124)

一些细节可能是相关的:

  • C#4/.NET 4
  • 视窗7 64位操作系统。 EXE适用于任何CPU(所以它处于64位模式)。
  • 这是在构建我的自定义对象之一时抛出的。我在一个子AppDomain中创建这个对象,这样我就可以卸载它将通过服务传入请求来加载的DLL。
  • 我从http://blogs.msdn.com/b/yizhang/看到HRESULT 0x80131124 = CLDB_E_INDEX_NOTFOUND。
  • 我最近才看到这种情况(在这个应用上工作了3年),甚至现在,只有当我尝试使用红门性能分析器或红门内存分析器对工具进行分析时才会出现这种情况。

我的问题是

  • 这是什么意思?
  • 什么是未找到索引?
  • 我该如何解决这个问题?

非常感谢。

UPDATE

而是定位到EXE对于任何,我就被迫到x64。问题仍然存在。

回答

0

您可以将平台的目标构建改为X86

1

在您的解决方案配置的查看,以确保所有的项目建立在同一个平台。

您错误的原因是因为您有一个x86文件试图加载64位DLL,反之亦然。

希望它有帮助。

+0

如何找出哪个组件被加载不匹配? – gap

+0

我强迫应用程序到64位,这个问题仍然发生。 – gap