wake-up-neo.com

CS-Dateien zum Debuggen von .NET-Quellcode nicht gefunden

Ich habe versucht, das Debugging der .NET-Quelle einzurichten, indem Sie dieser MDSN-Komplettlösung folgen. Der Symbol-Cache ist ordnungsgemäß eingerichtet, ebenso die Prüfung '.NET Framework-Quellschritt aktivieren'. 

Wenn ich nun jedoch in .NET-Code einsteigen möchte, werde ich aufgefordert, den Speicherort der betreffenden cs-Datei anzugeben. Die Fehlermeldung lautet You need to find <filename>.cs to view the source for the current call stack frame und The debugger could not locate the source file <filename>.cs.

Mir wird angeboten, nach der Datei zu suchen (aber ich habe sie nicht) oder eine Demontage anzusehen (aber das will ich nicht). 

Wie gehe ich in den .NET-Quellcode ein?

46
JBSnorro

Das Prüfen von Tools -> Options -> Debugging -> General -> Enable source server support hat alles auf mysteriöse Weise funktionieren lassen. Ich hoffe das Gleiche gilt für dich

33
JBSnorro

In meinem Fall habe ich nicht versucht, das .NET-Framework zu debuggen, aber ich habe die gleiche Fehlermeldung erhalten: .cs-Dateien zum Debuggen von .NET-Quellcode nicht gefunden. Also musste ich die Option "Nur meinen Code aktivieren" unter aktivieren: 
Extras -> Optionen -> Debugging -> Allgemein -> Nur meinen Code aktivieren

Per MS-Dokumentation:

Sie können Visual Studio so konfigurieren, dass es automatisch System-, Framework- und andere Nicht-Benutzeraufrufe übergeht und diese Aufrufe im Aufrufstapelfenster reduziert.

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

68
dier

Das hat mich auch eine Stunde gekostet. Ich habe es endgültig behoben, indem Sie die Einstellungen zurücksetzen -> Extras -> Import- und Exporteinstellungen -> Zurücksetzen

13
Stefan

Die Antworten hier sprechen alle davon, den Quellcode zu ignorieren/zu vermeiden, anstatt ihn tatsächlich zu betreten. 

@JBSnorro ist auf dem richtigen Weg, aber das Problem ist, dass Microsoft nicht alle .NET-Symbole/Quellen veröffentlicht, auf die Sie möglicherweise stoßen. Ich weiß nicht, ob dies absichtlich beabsichtigt ist, aber um in MS-Quellen einzusteigen, müssen sie jede Version jeder Assembly veröffentlichen, was eine große logistische Aufgabe ist.

Tools -> Options -> Debugging -> General -> Enable source server support wird in vielen Fällen funktionieren, aber ich fand zum Beispiel, dass mscorlib.dll für 4.6.1 keine Symbole und/oder eine dekompilierte Quelle hat. Daher konnte ich nicht in den gängigen Quellcode wie Dictionary.cs oder Task.cs als Beispiele einsteigen. Da sich die Quelle und die Symbole des MS-Symbol-Servers wahrscheinlich ständig ändern. Mein Problem ist möglicherweise behoben, wenn Sie dies lesen.

Wenn ich dieselbe Lösung in Jetbrain's Rider debugge, kann ich jede Klasse in jeder .NET-Assembly ohne Probleme anzeigen und schrittweise durchgehen. In VS kann ich jedoch nur in eine Klasse einsteigen, aber nicht in eine andere. 

Wenn Sie sich wirklich für den gesamten .NET-Quellcode interessieren, können Sie Jetbrain's DotPeek verwenden und die .NET-Assemblys in tatsächliche CS-Dateien auf Ihrer Festplatte dekompilieren. Dann, wenn Sie das sehen,

 Example of source code not found

Sie können jetzt Ihre Festplatte mit dem mit DotPeek dekompilierten Quellcode durchsuchen. Stellen Sie nur sicher, dass Sie dieselbe Assembly-Version dekompiliert haben, auf die Sie in Ihrem Projekt verweisen. Wenn nicht, stimmen die Symbole möglicherweise nicht mit den richtigen Quellleitungsnummern überein.

Wenn Sie dieses "Quelle nicht gefunden" einfach ausblenden möchten und nicht in den Code einsteigen möchten, für den es keine Quellen gibt, lesen Sie die Antwort von @Alex Sherman. Sie müssen herausfinden, in welcher Assembly sich die fehlerhafte Datei befindet, und dann den Namen der Assembly zur Ausschlussliste hinzufügen.

Denkanstoß, ich bin kein Fan von Rider over VS. Der Fahrer ist immer noch ein bisschen raffiniert und es fehlt ihm die verrückte Menge an Werkzeugen, die VS besitzt. Jedoch!! Ich lasse es gerne nebeneinander installieren, wenn ich weiß, dass ich tiefer in das Unkraut eindringen kann.

1
Eat at Joes

Wäre das gleiche Problem aufgetreten, hätte keine der oben vorgeschlagenen Lösungen mir bei der Lösung des Problems geholfen. Kam in VS 2017 vor. Als ich das Projekt in Visual Studio 2019 ausführte, funktionierte alles. Versuchen Sie einfach, es in anderen Umgebungen auszuführen. Hoffe, diese Antwort wird jemandem helfen

1
OlegI

Clean Die Lösung vor dem Build hat das Problem für mich gelöst.

Navigieren Sie einfach und klicken Sie auf:

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

Wenn der Fehler nach "nullable.cs" oder einer anderen Kernquelldatei sucht:

Sie können Symbole für bestimmte Module deaktivieren, indem Sie Debug -> Options -> Debugging -> Symbols und dann unten Specify Excluded Modules verwenden.

Dies ist nützlich, wenn Sie do "Just My Code" deaktivieren möchten, um in andere Assemblys zu gelangen, für die Sie PDBs haben. Ich denke, Visual Studio kommt mit Symbolen für mscorlib.dll, enthält jedoch not die Quelle, sodass beim Einstieg in Dinge nach einer "nullable.cs" oder einer anderen Kernquelldatei gesucht wird.

0
Alex Sherman

Ich habe diesen Fehler beim Aktualisieren eines NuGet-Pakets in einem Projekt erhalten, während es in anderen Projekten der Lösung nicht aktualisiert wurde.

Durch Aufrufen des NuGet Managers der Lösung und Verwenden der Konsolidierungsfunktion, die sicherstellt, dass alle Projekte in der Lösung dieselbe Version verwenden, wurde das Problem für mich behoben.

0
RonnyR

Sie können den Quellcode hier zum Download finden, damit Sie richtig debuggen können https://referencesource.Microsoft.com/#mscorlib,namespaces

0
itdoesntwork