Próbowałem skonfigurować debugowanie źródła .NET, postępując zgodnie z tym przewodnikiem MDSN . Pamięć podręczna symboli jest skonfigurowana prawidłowo, podobnie jak zaznaczenie opcji „Włącz krokowanie kodu źródłowego .NET Framework”.
Ale później, gdy chcę wejść do kodu .NET, pojawia się monit o określenie lokalizacji odpowiedniego pliku cs. Komunikat o błędzie to
You need to find <filename>.cs to view the source for the current call stack frame
i The debugger could not locate the source file <filename>.cs
.
Zaproponowano mi przeglądanie pliku (ale go nie mam) lub przeglądanie demontażu (ale tego nie chcę).
Jak wejść do kodu źródłowego .NET?
Sprawdzanie
Tools
->Options
->Debugging
->General
-> wEnable source server support
tajemniczy sposób sprawiło, że wszystko działało. Mam nadzieję, że to samo dotyczy Ciebieźródło
Zajęło mi to również godzinę. Ostatecznie naprawiłem to, resetując Ustawienia -> Narzędzia -> Ustawienia importu i eksportu -> Resetuj wszystkie ustawienia
źródło
Wyczyść rozwiązanie przed kompilacją rozwiązało problem.
Po prostu przejdź i kliknij:
Build
->Clean Solution
.Build
->Build Solution (Ctrl + Shift + B)
.źródło
Wypróbowałem wszystkie odpowiedzi z góry i nic nie działało.
To rozwiązało to dla mnie:
Debug
->Delete all Breakpoints
i to rozwiązało problem! Tak wiele różnych rzeczy powoduje ten problem.
źródło
Wszystkie odpowiedzi tutaj mówią o ignorowaniu / unikaniu kodu źródłowego, zamiast faktycznie wkraczać w niego.
@JBSnorro
jest na dobrej drodze, ale problem polega na tym, że wydaje się, że firma Microsoft nie publikuje wszystkich symboli / źródeł .NET, które możesz napotkać. Nie wiem, czy jest to zamierzone z ich strony, ale aby wejść do źródeł MS, muszą opublikować każdą wersję każdego zestawu, co jest dużym zadaniem logistycznym.Tools
->Options
->Debugging
->General
->Enable source server support
będzie działać w wielu przypadkach, ale stwierdziłem, że na przykładmscorlib.dll
w 4.6.1 brakowało symboli i / lub zdekompilowanego źródła. Więc nie mogłem wejść do wspólnego kodu źródłowego, takiego jakDictionary.cs
lubTask.cs
jako przykłady. Ponieważ źródło i symbole serwera MS symboli prawdopodobnie zmieniają się cały czas. Mój problem może zostać rozwiązany zanim to przeczytasz?Kiedy debuguję to samo rozwiązanie w Jetbrain's Rider, mogę przeglądać i przechodzić przez każdą klasę w każdym zestawie .NET bez żadnego problemu. Jednak w VS mogę wejść tylko do jednej klasy, a do innych nie?
Jeśli naprawdę chcesz wkroczyć do całego kodu źródłowego .NET, możesz użyć DotPeek firmy Jetbrain i zdekompilować zestawy .NET do rzeczywistych plików .cs na dysk. Wtedy, kiedy to zobaczysz,
Możesz teraz przeglądać swój dysk w poszukiwaniu kodu źródłowego zdekompilowanego za pomocą DotPeek. Po prostu upewnij się, że zdekompilowałeś tę samą wersję zestawu, do której odwołujesz się w projekcie. Jeśli nie, symbole mogą nie pasować do poprawnych numerów linii źródłowych.
Zamiast tego, jeśli chcesz po prostu ukryć to „Źródło nie znaleziono” przed ciągłym pojawianiem się i nie chcesz wkraczać do kodu, dla którego nie ma źródeł, przeczytaj
@Alex Sherman
odpowiedź. Będziesz musiał dowiedzieć się, w jakim zestawie znajduje się plik powodujący problem, a następnie dodaj tę nazwę zestawu do listy wykluczeń.Do przemyślenia, nie jestem fanem Rider over VS. Rider nadal jest surowy i brakuje mu szalonej ilości wbudowanych narzędzi, jakie ma VS. Jednak!! Lubię mieć to instalowane obok siebie w przypadkach takich jak ten, w których wiem, że mogę zagłębić się w chwasty.
źródło
Miałem ten sam problem, żadne z zaproponowanych powyżej rozwiązań nie pomogło mi rozwiązać problemu. Wystąpiło w VS 2017. Kiedy uruchomiłem projekt w Visual Studio 2019, wszystko działało. Więc po prostu spróbuj uruchomić go w innych środowiskach. Mam nadzieję, że ta odpowiedź komuś pomoże
źródło
Jeśli błąd wynika z wyszukiwania „nullable.cs” lub innego podstawowego pliku źródłowego:
Możesz wyłączyć symbole dla określonych modułów, używając,
Debug -> Options -> Debugging -> Symbols
a następnie na doleSpecify Excluded Modules
.Jest to przydatne w przypadku, gdy masz zrobić chcesz wyłączyć „Just My Code” do kroku do innych zespołów, że trzeba PDBs dla. Wydaje mi się, że Visual Studio zawiera symbole dla,
mscorlib.dll
ale nie zawiera źródła, więc czasami wchodzenie do rzeczy będzie szukać „nullable.cs” lub innego podstawowego pliku źródłowego.źródło
Możesz znaleźć kod źródłowy tutaj do pobrania, abyś mógł poprawnie debugować. https://referencesource.microsoft.com/#mscorlib,namespaces
źródło
Wystąpił ten błąd podczas aktualizowania pakietu NuGet w projekcie, podczas gdy nie mogę go zaktualizować w innych projektach rozwiązania.
Przejście do NuGet Managera rozwiązania i użycie funkcji konsolidacji, która zapewnia, że wszystkie projekty w rozwiązaniu używają tej samej wersji, rozwiązało problem za mnie.
źródło
W moim przypadku zmieniłem nazwę klasy. Może mylono go z jakimś innym modułem. Po zmianie nazwy mogłem wkroczyć.
źródło