2011-03-17 4 views
0

У меня есть некоторые дополнения из System.AddIn. Но при запуске AddInStore.Rebuild,Получение BadImageFormatException

string[] warnings = AddInStore.Rebuild(addInRoot); 

тогда я получаю предупреждение тетивы:

Файл не является действительной двоичным: D: \ AK \ AS \ ConverterModule \ выход \ надстроек \ CompositeFileZip \ 7z.dll Имя файла: D: \ АК \ AS \ ConverterModule \ выход \ AddIns \ Composi ...

7z.dll не сборка надстройка, но файл 7z, что Используется CompositeFileZip addin. Я не могу понять, что именно делает функция перестроения. Он пытается добавить файл 7z.dll в качестве дополнения?

ответ

5

Я не знаком с System.AddIn или компонентом 7z, но очень распространенная причина, по которой BadImageFormatException пытается загрузить сборку, помеченную как 64-разрядную (или зависящую от родной 64-разрядной .dll) на 32-битной системе или наоборот.

Проверьте, установлены ли ваши 7z.dll и его зависимости для той же архитектуры, что и система, в которой вы видите BadImageFormatException. Вы можете сделать это из командной строки Visual Studio сбросов заголовков для 7z.dll и ищет архитектуру машины:

 
    C:\Program Files\7-Zip>dumpbin /headers 7z.dll | findstr /i machine 
      8664 machine (x64) 
+1

... или при загрузке сборки, которая не является сборкой .Net. – adrianbanks

+0

Я получаю вашу линию. Затем я переключился на файл 7z.dll, который построен для 32-разрядной версии, но исключение BadImageFormatException все еще существует. Проекты создаются для «Any CPU». –

+0

Bummer. Если никакие другие предложения не появятся, и это я, я бы включил отладку источника .NET Framework и установил, что отладчик прерывается, когда возникает исключение. Затем вы можете увидеть детали в точке, где возникает исключение BadImageFormatException. См. [Эту ссылку] (http://blogs.msdn.com/b/sburke/archive/2008/01/16/configuring-visual-studio-to-debug-net-framework-source-code.aspx) для получения более подробной информации. на включение отладки источника .NET FW. Чтобы сломать, как только Исключение будет поднято, перейдите к ** Debug | Исключения ** в VS, затем установите флажок ** Брошенный ** рядом с ** Исключениями Common Language Runtime Exceptions **. –

 Смежные вопросы

  • Нет связанных вопросов^_^