C# Assembly.LoadFrom lança BadImageFormatException
-
11-12-2019 - |
Pergunta
Em um dos projetos que estou trabalhando o código carrega dinamicamente em uma DLL .net em um Assembly totalmente confiável usando o Assembly.LoadFrom
função.Até agora isso tem funcionado 100% sem problemas.
Agora tenho uma DLL do Visual C++ compilada com /clr:pure que precisa ser carregada usando o procedimento acima Assembly.LoadFrom
.Recebo BadImageFormatException quando faço isso, o que é muito estranho.
No projeto Visual C++ existem 3 tipos de opções de compilação CLR:
/clr
/clr:puro
/clr:seguro
De acordo com as instruções fornecidas, ele precisa ser compilado em /clr:pure.Meu problema é usar /clr:pure lança a exceção.Se eu mudar para/clr, também gerará uma exceção.Se eu mudar para /clr:safe ele carrega sem lançar uma exceção (foi aqui que meu teste terminou).
Então eu acho que esta é realmente uma questão de duas partes:
1) Por que /clr:safe funcionaria, mas não os outros dois?
2) Como faço para funcionar com /clr?
Desde já, obrigado!
Solução
Após pesquisa, este método não pode carregar montagens mistas.Eles só podem ser MSIL puro.