С# Assembly.LoadFrom создает исключение BadImageFormatException

В одном из проектов я работаю, код динамически загружается в .net DLL в полностью доверенную сборку с использованием функции Assembly.LoadFrom. До сих пор это работало на 100% без проблем.

Теперь у меня есть библиотека DLL Visual C++, скомпилированная с параметром /clr:pure, которую необходимо загрузить с помощью приведенного выше Assembly.LoadFrom. Я получаю BadImageFormatException, когда я это делаю, что действительно странно.

В проекте Visual C++ есть 3 типа параметров компиляции CLR:

/клр

/CLR:чистый

/clr: безопасно

Согласно данным мне инструкциям, его необходимо скомпилировать в /clr:pure. Моя проблема заключается в том, что использование /clr:pure вызывает исключение. Если я изменю его на /clr, он также выдаст исключение. Если я изменю его на /clr:safe, он загрузится без исключения (на этом мое тестирование закончилось).

Итак, я думаю, что это действительно вопрос из двух частей:

1) Почему /clr:safe работает, а два других нет?

2) Как мне заставить его работать с /clr?

Заранее спасибо!


person Landin Martens    schedule 29.09.2012    source источник


Ответы (1)


После исследования этот метод не может загружать смешанные сборки. Они могут быть только чистыми MSIL.

person Landin Martens    schedule 01.10.2012
comment
Тогда что ты сделал вместо этого? - person Sandy; 27.10.2014