Bonjour a tous,
voilà 3 jours que je bloque complètement sur un problème débile. J'ai vraiment besoin d'aide parce que je ne sais plus du tout quoi faire!
Mon problème : En debug d'une appli C# sous Visual 2008, lors de l'utilisation d'une méthode dans une DLL externe, j'ai une joli boite qui apparait avec Module Introuvable : FileNotFoundExecption
Voici toutes les données du problèmes. Il y a en bcp, d'où la difficulté de trouver la source :
- Bien sur, le champs Filename de l'exception est vide...
- Le projet est importé depuis visual 2005 où il fonctionne. L'importation s'est bien passée.
- Si je désactive l'appel à la DLL externe, ca fonctionne bien.
- En release : Aucun souci, tout fonctionne parfaitement, même avec la dll externe. J'ai donc bien vérifié au moins 10 fois : les modes release/debug ont les mêmes include/lib
- La dll externe est en C++ managée.
- Dans Dependencies Walker, les seuls DLL qui posent problème sont celles des MSVC*90d.dll. Curieusement, parfois elles sont présentes, et après certaines recompil (à la suite avec la même configuration) elles n'y sont plus. Soit Dependencies Walker a un souci, soit il se passe des choses bizarres à la compil.
- Si je copie les dll MSVC dans le répertoire de l'appli, Dependencies Walker dit que tout est OK, mais j'ai toujours le même problème...
- Les manifest ont l'air correct (les liens avec justement les DLL MSVC sont présents)
- Lors de l'exception, la callstack indique qu'on est dans mscorlib.dll dans loadAssembly. Un paramètre contient la string du nom de l'assembly, mais bien sur, pas moyen d'y accéder. J'ai seulement accès à l'assembleur.
- A la compilation, aucune erreur.
Je pense avoir fait le tour. J'ai aussi essayé d'utiliser ProcessMonitor, mais je ne trouve pas d'info utiles.
Au final, je ne pense pas que ca vienne de l'importation depuis VS2005 puisque ca fonctionne en release. Il semblerait aussi que le problème ne vienne pas des msvc*90d.dll puisqu'avec ou sans, c'est pareil... Voilà où j'en suis, je ne sais plus où chercher...
Si certains ont déjà eu un problème similaire, ou si des âmes charitables savent comment récupérer simplement le nom de l'assembly ou de la dll qui pose problème : à votre bon coeur !
Partager