C# Assembly.LoadFrom создает исключение BadImageFormatException
В одном из проектов я работаю, код динамически загружается в.net DLL в полностью доверенную сборку, используя Assembly.LoadFrom
функция. До сих пор это работало на 100% без проблем.
Теперь у меня есть DLL-библиотека Visual C++, скомпилированная с / clr: pure, которая должна быть загружена с использованием вышеуказанного Assembly.LoadFrom
, Когда я делаю, я получаю BadImageFormatException, что действительно странно.
В проекте Visual C++ есть 3 типа параметров компиляции CLR:
/ CLR
/ CLR: чисто
/ CLR: сейф
Согласно данным мне инструкциям, его нужно скомпилировать в / clr: pure. Моя проблема заключается в использовании / clr: pure выбрасывает исключение. Если я изменяю это на / clr, это также выдает исключение. Если я изменяю его на / clr: safe, он загружается без исключения (это - то, где мое тестирование закончилось).
Так что, думаю, это действительно вопрос из двух частей:
1) Почему / clr: безопасная работа, а не две другие?
2) Как мне заставить его работать с /clr?
Заранее спасибо!
1 ответ
После исследования этот метод не может загружать смешанные сборки. Они могут быть только чистым MSIL.