Получение BadImageFormatException - PullRequest
0 голосов
/ 17 марта 2011

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

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

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

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

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

1 Ответ

5 голосов
/ 17 марта 2011

Я не знаком с 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)
...