Pregunta

Estoy llamando a una DLL no administrada de mi código C# administrado y quería verificar que llame a la versión correcta.

El código que estoy intentando cargar el ensamblaje (para obtener el archivo de recursos y luego obtener la versión) es: cur_version = ensamblaje.loadfile ("x: workspace yreceipts_pos yrprintprocessor debug yrintprocessor.dll"); Está fallando debido a este error:The module was expected to contain an assembly manifest. (Exception from HRESULT: 0x80131018)

¿Alguien sabe cómo evitar esto o tener una mejor manera de verificar la versión de una DLL no administrada del código C# administrado?

Gracias de antemano, Richard

¿Fue útil?

Solución

Como lo indicó LogicNP; La carga de ensamblaje es solo para ensamblajes administrados. Para determinar la versión de cualquier archivo de versión, puede usar System.diagntics.fileversionInfo.getVersionInfo (nombre de archivo) y cargar y llamar a los procedimientos no administrados en DLLS puede consultar estos artículos:

http://blogs.msdn.com/jonathanswift/archive/2006/10/02/780637.aspx http://blogs.msdn.com/jonathanswift/archive/2006/10/03/dynamically-calling-an-unmanaged-drl-from-.net-_2800_c_23002900_.aspx

Buena suerte...

Otros consejos

La razón por la que falla es porque no puede usar el ensamblaje. Carga para cargar DLL no administrados. Vea el enlace sugerido por David Brown.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top