web-dev-qa-db-fra.com

Impossible de trouver des fichiers .cs pour le débogage du code source .NET

J'ai essayé de configurer le débogage de la source .NET en suivant cette procédure MDSN . Le cache de symboles est configuré correctement, de même que la case à cocher «Activer le traitement source source .NET Framework». 

Mais par la suite, chaque fois que je souhaite entrer dans le code .NET, je suis invité à spécifier l'emplacement du fichier cs approprié. Le message d'erreur est You need to find <filename>.cs to view the source for the current call stack frame et The debugger could not locate the source file <filename>.cs.

On me propose de rechercher le fichier (mais je ne l’ai pas) ou de regarder un désassemblage (mais je ne le veux pas). 

Comment entrer dans le code source .NET?

46
JBSnorro

Vérifier Tools -> Options -> Debugging -> General -> Enable source server support a mystérieusement tout fait fonctionner. J'espère que la même chose est vraie pour toi

33
JBSnorro

Dans mon cas, je n’essayais pas de déboguer le framework .Net, mais j’obtenais la même erreur: Impossible de trouver les fichiers .cs pour le débogage du code source .NET. Donc Je devais activer l'option "Activer uniquement mon code" sous: 
Outils -> Options -> Débogage -> Général -> Activer uniquement mon code

Par document MS:

Vous pouvez configurer Visual Studio pour qu'il réponde automatiquement aux appels du système, de la structure et des autres appels, et réduise ces appels dans la fenêtre de la pile d'appels.

https://docs.Microsoft.com/en-us/visualstudio/debugger/just-my-code

68
dier

Cela m'a pris une heure aussi. J'ai finalement résolu le problème en réinitialisant les paramètres -> Outils -> Paramètres d'importation et d'exportation -> Réinitialiser

13
Stefan

Les réponses ici parlent toutes d’ignorer/d’éviter le code source au lieu d’y entrer réellement. 

@JBSnorro est sur la bonne voie, mais le problème est que Microsoft ne semble pas publier tous les symboles/sources .NET que vous pourriez rencontrer. Je ne sais pas si c'est intentionnel de leur part, mais pour entrer dans les sources MS, ils doivent publier chaque version de chaque Assemblée, ce qui est une tâche logistique considérable.

Tools -> Options -> Debugging -> General -> Enable source server support fonctionnera dans de nombreux cas, mais j'ai trouvé par exemple que mscorlib.dll pour 4.6.1 manquait de symboles et/ou de source décompilée. Donc, je ne pouvais pas entrer dans le code source commun comme Dictionary.cs ou Task.cs à titre d'exemple. Depuis la source et les symboles du serveur de symboles MS, il est probable que ceux-ci changent constamment. Mon problème peut être résolu au moment où vous lisez ceci?

Lorsque je débogue la même solution dans le pilote Rider de Jetbrain, je peux voir et parcourir toutes les classes de chaque assemblage .NET sans problème. Cependant, dans VS, je peux seulement entrer dans une classe mais pas dans d'autres? 

Si vous êtes vraiment déterminé à utiliser tout le code source .NET, vous pouvez utiliser DotPeek de Jetbrain et décompiler les assemblys .NET en fichiers .cs réels sur votre disque. Puis quand tu vois ça,

 Example of source code not found

Vous pouvez maintenant parcourir votre disque jusqu'au code source que vous avez décompilé à l'aide de DotPeek. Assurez-vous simplement que vous avez décompilé la même version d’Assemblée que vous avez référencée dans votre projet. Sinon, les symboles peuvent ne pas correspondre aux numéros de ligne source corrects.

Au lieu de cela, si vous voulez juste cacher cette "Source Introuvable" de s'afficher constamment et que vous ne vous souciez pas d'entrer dans le code, il n'y a pas de sources pour, lisez la réponse de @Alex Sherman. Vous devrez déterminer le contenu de l'assembly dans lequel se trouve le fichier incriminé, puis ajouter ce nom d'assembly à la liste d'exclusion.

Matière à réflexion, je ne suis pas fan de Rider over VS. Rider est toujours un peu cru et manque de la quantité incroyable d'outils intégrés à VS. Toutefois!! J'aime l'avoir installé côte à côte dans des cas comme celui-ci, où je sais que je peux pénétrer plus profondément dans les mauvaises herbes.

1
Eat at Joes

Si j'avais le même problème, aucune des solutions proposées ci-dessus ne m'a aidé à résoudre le problème. Cela s'est produit dans VS 2017. Lorsque j'ai exécuté le projet dans Visual Studio 2019, tout a fonctionné. Donc, essayez simplement de l'exécuter dans d'autres environnements. J'espère que cette réponse aidera quelqu'un

1
OlegI

Nettoyer la solution avant la construction résolue le problème pour moi.

Il suffit de naviguer et de cliquer sur:

  1. Build -> Clean Solution.
  2. Build -> Build Solution (Ctrl + Shift + B).
0
Shahar Shokrani

Si l'erreur provient de la recherche de "nullable.cs" ou d'un autre fichier source principal:

Vous pouvez désactiver les symboles pour des modules spécifiques en utilisant Debug -> Options -> Debugging -> Symbols puis en bas du Specify Excluded Modules.

Ceci est utile dans les cas où vous do souhaitez désactiver "Just My Code" pour entrer dans d'autres assemblys pour lesquels vous avez des PDB. Je pense que Visual Studio est livré avec des symboles pour mscorlib.dll, mais not n'inclut pas la source.

0
Alex Sherman

J'ai eu cette erreur lors de la mise à jour d'un paquet NuGet dans un projet, alors qu'il manquait pour le mettre à jour dans d'autres projets de la solution.

Accéder au gestionnaire NuGet de la solution et utiliser la fonction de consolidation, qui garantit que tous les projets de la solution utilisent la même version, a résolu le problème pour moi.

0
RonnyR

Vous pouvez trouver le code source ici à télécharger afin que vous puissiez déboguer correctement . https://referencesource.Microsoft.com/#mscorlib,namespaces

0
itdoesntwork