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