Frage

Ich rufe eine nicht verwaltete DLL aus meinem verwalteten C# -Code an und wollte überprüfen, ob ich die richtige Version nenne.

Der Code, den ich versuche, die Montage zu laden (um dann die Ressourcendatei zu erhalten und dann die Version zu erhalten) ist: cur_version = montag.loadFile ("x: worctionspace yReceipts_pos yrprintProcessor debug yrPrintProcessor.dll"); Es scheitert wegen dieses Fehlers:The module was expected to contain an assembly manifest. (Exception from HRESULT: 0x80131018)

Weiß jemand

Vielen Dank im Voraus, Richard

War es hilfreich?

Lösung

Wie von Logicnp angegeben; Die Montage.load ist nur für verwaltete Baugruppen. Um die Version jeder Versionsdatei zu bestimmen, können Sie System.Diagnostics.FileVersionInfo.GetversionInfo (Dateiname) verwenden und um nicht verwaltete Verfahren in DLLs zu laden und aufzurufen. Sie können sich auf diese Artikel beziehen:

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

Viel Glück...

Andere Tipps

Der Grund, warum es fehlschlägt, ist, dass Sie keine Assembly verwenden können. Laden Sie nicht verwaltete DLLs. Siehe den von David Brown vorgeschlagenen Link.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top