2011-11-24 251 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