2014-05-20 2 views
3

J'ai un problème gênant avec une application C#. Pour simplifier le scénario, j'ai un projet .exe principal qui fait référence à une autre bibliothèque C# en tant que dépendance DLL directe. Cette DLL lève des exceptions dans un endroit particulier et le débogueur les interrompt. Cependant, l'exception est gérée et non relancée. Ma boîte de dialogue d'exceptions dans VS est vérifiée pour que le débogueur ne casse que sur les exceptions non gérées par l'utilisateur de ce type (InvalidOperationException), mais il est toujours en rupture.Le débogueur VisualStudio casse les exceptions gérées lorsque la bibliothèque est liée en tant que DLL

Cependant si je liez la même bibliothèque comme une référence de projet (plutôt que pour la DLL compilée) le débogueur ne rompt plus sur cette exception.

De même, si j'exécute le programme .exe directement (en dehors du débogueur), je ne vois aucune preuve que cette exception n'est pas gérée comme je le souhaite. Aucune erreur et ma journalisation indique le flux de contrôle attendu.

Le code associé n'a pratiquement pas changé depuis un certain temps, mais j'ai refaçonné mes solutions et projets; Auparavant, je n'utilisais que des références de projet, donc peut-être n'ai-je jamais repéré ce problème jusqu'à ce que je consulte des références DLL.

Quelqu'un peut-il suggérer autre chose que je pourrais examiner pourquoi le débogueur brise cette exception gérée?

+0

Très étrange. Que se passe-t-il si vous supprimez le pdb de la DLL dépendante? – Ikaso

+0

Aucun changement; en fait, les PDB ne sont pas présents dans ce cas. (Mais j'ai essayé le même scénario avec PDB inclus) –

+0

Jetez un coup d'oeil sur [this] (http://stackoverflow.com/questions/10201622/how-can-i-prevent-swallowed-exceptions-in-3rd-party -libraries-from-triggering-th? rq = 1) SO question. – Ikaso

Répondre

Questions connexes