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

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top