2009-11-17 5 views
0

J'ai une application asp.net, avec un certain nombre de DLL référencées.
Maintenant, il semble lors de la compilation du projet, je continue à obtenir cette seule erreur:Exception non claire lors de la compilation du projet ASP.NET

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

Je vois que l'un des dll qui Référencez est le interop.dll, je soupçonne que cette erreur provient du fait que interop.dll a besoin de quelques

Y at-il de toute façon que je peux savoir ce que cette ressource est (exe, dll, activex, ..) est cette ressource native qui n'est pas (corriger moi si je me trompe s'il vous plaît).

Répondre

0

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

  1. Ouvrez le fichier dll ou exe de votre application qui, selon vous, fait référence à une dépendance manquante dans Reflector. Vous voudrez probablement commencer avec l'interop.dll que vous avez mentionné.
  2. Cliquez avec le bouton droit sur la DLL dans Reflector et sélectionnez Disassemble.
  3. Cliquez sur chacun des types, un par un, et recherchez les attributs ComImport et TypeLibType, qui spécifient le GUID de tous les types COM externes référencés.
  4. Ouvrez regedit et recherchez HKEY_CLASSES_ROOT pour le GUID. Vous devriez être capable de rencontrer une interface qui correspond au GUID, avec une sous-clé TypeLib qui contient un autre GUID.
  5. Recherchez maintenant HKEY_CLASSES_ROOT à l'aide du GUID TypeLib. Vous devez trouver une correspondance avec une sous-clé InProcServer32 qui contient le chemin d'accès à la DLL ou exe COM.

Si vous ne trouvez aucune correspondance, alors quelque chose manque quelque part. Le simple fait de parcourir Reflector peut vous donner des indices qui peuvent vous aider à retrouver ce qui manque. Ou, si vous trouvez des correspondances, vous pourriez être cloué dans un SDK qui n'a pas été correctement installé, ou qui peut avoir d'autres DLL compagnons qui peuvent avoir besoin d'être enregistrés manuellement (en utilisant regsvr32).

Espérons que cela aide (et a du sens).

Questions connexes