Pergunta

Estou chamando uma DLL não gerenciada do meu código C# gerenciado e queria verificar que estou chamando a versão certa.

O código que estou tentando carregar a montagem (para obter o arquivo de recursos e depois obter a versão) é: cur_version = Assembly.loadfile ("x: workspace yreceipts_pos yrprintprocessor debug yrprintprocessor.dll"); Está falhando por causa deste erro:The module was expected to contain an assembly manifest. (Exception from HRESULT: 0x80131018)

Alguém sabe como contornar isso ou tem uma maneira melhor de verificar a versão de uma DLL não gerenciada do código C# gerenciado?

Obrigado antecipadamente, Richard

Foi útil?

Solução

Conforme declarado pelo Logicnp; o conjunto. Para determinar a versão de qualquer arquivo de versão da versão, você pode usar o System.diagnostics.fileversioninfo.getversionInfo (nome do arquivo) e para carregar e chamar procedimentos não gerenciados nas DLLs, você pode consultar estes artigos:

http://blogs.msdn.com/jonathanswift/archive/2006/10/02/780637.aspx http://blogs.msdn.com/jonathanswift/archive/2006/10/03/dynamicalmente-calling-an-unagaged-dll-from-.net-_2800_c_23002900_.aspx

Boa sorte...

Outras dicas

A razão pela qual falha é porque você não pode usar o Assembly.Load para carregar DLLs não gerenciados. Veja o link sugerido por David Brown.

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