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!

Foi útil?

Solução

Após pesquisa, este método não pode carregar montagens mistas.Eles só podem ser MSIL puro.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top