Что означает BadImageFormatException 0x80131124 (индекс не найден)? - PullRequest
3 голосов
/ 24 ноября 2011

Моя программа иногда падает со следующим сообщением об ошибке:

System.Reflection.TargetInvocationException: Исключение было сгенерировано целью вызова. ---> System.BadImageFormatException: индекс не найден. (Исключение из HRESULT: 0x80131124)

Некоторые подробности, которые могут иметь отношение к делу:

  • C # 4 / .NET 4
  • Windows 7 64-битная ОС. EXE для любого процессора (поэтому он в 64-битном режиме).
  • Это выбрасывается во время строительства одного из моих пользовательских объектов. Я создаю этот объект в дочернем домене приложения, чтобы я мог выгружать библиотеки DLL, которые он будет загружать, обслуживая входящий запрос.
  • Я вижу из http://blogs.msdn.com/b/yizhang/, что HRESULT 0x80131124 = CLDB_E_INDEX_NOTFOUND.
  • Я видел это только недавно (работаю над этим приложением в течение 3 лет), и даже сейчас, это происходит только тогда, когда я пытаюсь профилировать инструмент с помощью Red Gate Performance Analyzer или Red Gate Memory Analyzer.

Мои вопросы

  • Что это значит?
  • Что такое «индекс не найден»?
  • Как мне это исправить?

Большое спасибо.

UPDATE

Вместо того, чтобы ориентироваться на EXE для ЛЮБОГО, я принудительно установил его на x64. Проблема все еще возникает.

Ответы [ 2 ]

1 голос
/ 24 ноября 2011

Просмотрите конфигурацию вашего решения, чтобы убедиться, что все ваши проекты построены на одной и той же платформе.

Причиной вашей ошибки является то, что у вас есть файл x86, пытающийся загрузить 64-битную DLL или наоборот.

Надеюсь, это поможет.

0 голосов
/ 24 ноября 2011

Вы можете изменить цель платформы build на X86

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...