C # Obtenir la version de DLL non gérée
-
20-09-2019 - |
Question
J'appelle une DLL non gérée à partir de mon code C # géré et je voulais vérifier que j'appelle la bonne version.
Le code que j'essaie de charger l'assembly (pour ensuite obtenir le fichier de ressources, puis d'obtenir la version) est: cur_version = assembly.loadFile ("x: workspace yreceipts_pos yrprintprocessor debug yrprintprocessor.dll"); Il échoue à cause de cette erreur:The module was expected to contain an assembly manifest. (Exception from HRESULT: 0x80131018)
Est-ce que quelqu'un sait comment contourner cela ou avoir une meilleure façon de vérifier la version d'une DLL non gérée à partir du code C # géré?
Merci d'avance, Richard
La solution
Comme indiqué par logicnp; L'assemblage. Téléchargement est réservé aux assemblées gérées. Pour déterminer la version de n'importe quel fichier de versions de version, vous pouvez utiliser System.Diagnostics.FileVersionInfo.getVersionInfo (nom de fichier) et pour charger et appeler des procédures non gérées en DLL, vous pouvez vous référer à ces articles:
http://blogs.msdn.com/jonathanswift/archive/2006/10/02/780637.aspx http://blogs.msdn.com/jonathanswift/archive/2006/10/03/dynamicalcalling-an-unmanaged-dll-from-.net-_2800_c_23002900_.aspx
Bonne chance...
Autres conseils
La raison pour laquelle il échoue est parce que vous ne pouvez pas utiliser l'assemblage. Téléchargez pour charger des DLL non gérées. Voir le lien suggéré par David Brown.