0 votes

Exception non claire lors de la compilation d'un projet ASP.NET

J'ai une application asp.net, avec un certain nombre de dll référencées.
Maintenant, il semble que lorsque je compile le projet, je continue à obtenir cette erreur :

   The specified module could not be found. Exception from HRESULT: 0x8007007E

Je vois que l'une des dll qui est référencée est la interop.dll Je pense que c'est erreur provient du fait que interop.dll a besoin d'une ressource native qui n'est pas enregistrée sur le système (corrigez-moi si je me trompe, s'il vous plaît).

Y a-t-il un moyen de savoir ce qu'est cette ressource (exe, dll, activex,..) ?

1voto

empi Points 8609

Google m'a donné un résultat intéressant : http://social.msdn.microsoft.com/forums/en-US/csharpgeneral/thread/6793785a-ec98-4453-a62b-f1a85195ec05

En gros, cela dit que vous pouvez utiliser Dépendance Walker pour vérifier les dlls dont vous avez besoin.

Je vous recommande vraiment de chercher un peu plus sur Google. Il y a beaucoup de pages web qui traitent de ce problème.

0voto

Bob Black Points 1477

Vous pouvez utiliser .Net Reflector (de Redgate Software, anciennement Lutz Roeder's Reflector) pour détecter les problèmes de dépendance. Ce n'est pas automatique, mais cela a fonctionné pour moi dans le passé.

  1. Ouvrez la dll ou l'exe de votre application, qui, selon vous, fait référence à une dépendance manquante, dans Reflector. Vous voudrez probablement commencer par la dll interop.dll que vous avez mentionnée.
  2. Faites un clic droit sur la dll dans Reflector et sélectionnez Désassembler.
  3. Cliquez sur chacun des types, un par un, et recherchez les attributs ComImport et TypeLibType, qui spécifient le GUID de tout type COM externe référencé.
  4. Ouvrez regedit, et recherchez le GUID dans HKEY_CLASSES_ROOT. Vous devriez pouvoir trouver une interface qui correspond au GUID, avec une sous-clé TypeLib qui contient un autre GUID.
  5. Recherchez maintenant HKEY_CLASSES_ROOT en utilisant le GUID de TypeLib. Vous devriez trouver une correspondance avec une sous-clé InProcServer32 qui contient le chemin d'accès à la dll ou à l'exe COM.

Si vous ne trouvez aucune correspondance, c'est qu'il manque quelque chose quelque part. Le simple fait de parcourir Reflector peut vous donner quelques indices qui vous aideront à trouver ce qui manque.

Si vous trouvez des correspondances, il se peut que le SDK n'ait pas été correctement installé ou que d'autres DLL compagnons doivent être enregistrés manuellement (à l'aide de regsvr32).

J'espère que cela vous aidera (et aura du sens).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X