Вопрос

В одном из проектов, над которыми я работаю, код динамически загружается в .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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top