web-dev-qa-db-fra.com

"mscorlib.pdb n'est pas chargé" mais le fichier mscorlib.dll n'est pas manquant

J'exécute mon application dans VS2012 et j'obtiens une erreur d'exécution; enter image description here

Quand je regarde dans "l'emplacement d'origine", je vois mscorlib.dll, mais pas mscorlib.pdb.

Pourquoi cela se produit-il et comment puis-je résoudre le problème?

52
arame3333

Aller aux outils, Options, Débogage, Général, Activer juste mon code 

Cela empêchera le débogueur d'essayer de se lancer sur un assembly .NET Framework interne.

108
Wallbasher

Allez dans Outils, Options, Débogage, Symboles et définissez un emplacement de cache. Cliquez ensuite sur load dans ce qui précède et il récupérera les symboles nécessaires pour vous et les stockera à l'emplacement de cache que vous avez fourni.

Les outils de compilation de Microsoft créent des symboles dans des fichiers séparés avec une extension .pdb (base de données de programmes). Cela leur permet de créer des symboles détachés pour les fichiers binaires de publication. Avec un serveur de symboles, votre IDE peut extraire le fichier de symboles correspondant à la version spécifique de DLL pendant le débogage. Vous pouvez également configurer ce système pour vos propres fichiers binaires de produit, ce qui peut s'avérer très utile pour le débogage post-mortem de tout blocage sur les ordinateurs des utilisateurs finaux.

Voir Documentation de Microsoft pour plus de détails sur l'utilisation de leurs symboles publics.

7
patthoyts

La meilleure solution pour résoudre cette erreur est:

1: Ouvrez le fichier App.config.

2: Collez ce code useLegacyV2RuntimeActivationPolicy="true" dans la balise de démarrage.

3: Enregistrez-le. 

Maintenant l'erreur disparaîtrait. De plus voir  this Image. J'ai fait ça pour toi.

2
Muhammad Abbas

J'ai eu ce problème lorsque j'utilisais une variable statique, dont la valeur est affectée par une méthode statique.

Donc, chaque fois que j'ai lancé l'application, cette ligne de code a jeté une exception. Si vous placez un point de débogage sur ce point (comme je l’ai fait), vous remarquerez l’exception levée. 

2
Nabil Shaik

Cela m'est arrivé pour une autre raison: j'avais référencé une ancienne version de NLog (2.0) et devais plutôt référencer la version 4.0.

1
David

Ce fil est ancien, mais si vous avez atterri ici comme moi et qu'aucune des solutions ci-dessus ne fonctionnait pour vous, voici comment j'ai résolu cette impasse: Onglet "Application" de la fenêtre des propriétés. Si c'est le cas, essayez de revenir au nom d'origine et de voir si l'exception disparaît . La raison en est peut-être que le nouveau nom ne correspond pas à "AssemblyTitle" dans le fichier "AssemblyInfo.cs".

0
RoySeberg

Dans une application de console VB, dans mon cas, rien de ce qui précède.

Je fais juste un calcul de chaîne dans les déclarations de Dim avant mes sous-marins.

Le code incriminé: 

Dim FylPrefix $ = Fyl.Substring (0, Fyl.LastIndexOf ("."))

Déplacer ce calcul dans le sous-ordinateur était nécessaire pour le réparer! GERONIMO !!

0
Runner66