C# Version von nicht verwaltetem DLL erhalten
-
20-09-2019 - |
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
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.