.NET 소스 코드 디버깅을위한 .cs 파일을 찾을 수 없습니다.


93

이 MDSN 연습 에 따라 .NET 소스 디버깅 설정을 시도했습니다 . '.NET Framework 소스 스테핑 사용'체크와 마찬가지로 기호 캐시가 올바르게 설정되었습니다.

그러나 이후에 .NET 코드로 들어 가려고 할 때마다 관련 cs 파일의 위치를 ​​지정하라는 메시지가 표시됩니다. 오류 메시지는 You need to find <filename>.cs to view the source for the current call stack frame및 The debugger could not locate the source file <filename>.cs입니다.

나는 파일을 찾거나 (내가 가지고 있지 않음) 분해를 보도록 제안 받았다 (하지만 나는 그것을 원하지 않는다).

.NET 소스 코드로 들어가는 방법?

답변:


144

글쎄, 제 경우에는 .Net 프레임 워크를 디버깅하려고하지 않았지만 동일한 오류가 발생했습니다. Cannot find .cs files for debugging .NET source code . 따라서 도구-> 옵션-> 디버깅-> 일반-> 내 코드 만 활성화에서 "내 코드 만 활성화"옵션을
설정해야했습니다.

MS 문서 당 :

시스템, 프레임 워크 및 기타 비 사용자 호출을 자동으로 건너 뛰고 호출 스택 창에서 해당 호출을 축소하도록 Visual Studio를 구성 할 수 있습니다.

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


나는 "내 코드 만"을 자동으로 비활성화하는 ".NET Framework 소스 스테핑"을 활성화했으며, 이것이 발견 될 때까지 개입 할 수 없다는 사실에 미쳤습니다. 그러니 옵션을 표시 할 때 무엇이 ​​비활성화되는지 확인하십시오. :)
— Alan Warden

1
나는 이전에 이것을 활성화했다고 생각했습니다. 나는 가서 확인했지만 확실히 확인되지 않았습니다. 감사!
— coinbird

1
훌륭한 대답과 내 문제가 해결되었지만 파일을 건너 뛰고 들어 가지 않습니다. 목표가 파일에 들어가는 것이라면 다른 솔루션이 필요할 수 있습니다.
— 단어 재배

53

확인 Tools-> Options-> Debugging-> General-> Enable source server support신비하게 모든 것이 작동했습니다. 너에게도 그랬 으면 좋겠어


19
주님, 왜 작동하지 않습니까? 프레임 워크 코드를 실행하려고 할 때 소스 코드 파일을 찾아 보라는 메시지가 계속 표시됩니다.
— gravidThoughts

29

이것도 한 시간이 걸렸습니다. 설정-> 도구-> 설정 가져 오기 및 내보내기-> 모든 설정 재설정을 재설정하여 마지막으로 수정했습니다.


작동했습니다! 재설정 후 '옵션-> 디버깅'설정을 무시하고 내 보낸 항목을 가져 왔습니다. 좋은!!
— 신비의 린

VS 2015 Pro에서 작업했지만 물론 필요한 사용자 지정 설정이 없습니다.
— RandomUs1r

모든 설정을 재설정하면 문제가 해결되었습니다. 디버깅을위한 사용자 지정 색상 설정이 너무 많아서 별도의 파일에 저장해야했습니다. 더 이상 사용할 수 없습니다. grrr.
— EspressoBeans

설정을 재설정하고 Visual Studio 2017을 다시 시작했습니다. 재설정 후 다시 시작하면 트릭이 발생했습니다.
— Siddharth

VS Ultimate 2013을 사용하여 Visual Basic .NET에 대해이 재설정을 수행 한 이유는 이것이 내가 코딩하고있는 것이므로이 재설정으로 인해 이상한 datetime.cs에서 오류 메시지를 찾을 수 없습니다.
— JohnH

7

여기에있는 답변은 모두 소스 코드에 실제로 들어가는 대신 무시 / 피하는 것에 대해 이야기합니다.

@JBSnorro올바른 방향으로 가고 있지만 문제는 Microsoft가 발생할 수있는 모든 .NET 기호 / 소스를 게시하지 않는 것 같습니다. 나는 그것이 그들의 부분에서 의도적 인 것인지는 모르지만 MS 소스에 들어가기 위해서는 큰 물류 작업 인 모든 어셈블리의 모든 버전을 게시해야합니다.

Tools-> Options-> Debugging-> General-> Enable source server support많은 경우에서 작동하지만 예 mscorlib.dll를 들어 4.6.1의 경우 기호 및 / 또는 디 컴파일 된 소스가 없다는 것을 알았습니다 . 그래서 내가 좋아하는 공통 소스 코드를 한 단계 씩 수없는 Dictionary.cs나 Task.cs로서는, 예를 들면. MS 심볼 서버의 소스 및 심볼은 항상 변경 될 수 있기 때문에. 이 글을 읽을 때 내 문제가 해결 될 수 있습니까?

Jetbrain의 Rider에서 동일한 솔루션을 디버깅하면 모든 .NET 어셈블리의 모든 클래스를 문제없이보고 단계별로 확인할 수 있습니다. 그러나 VS에서는 일부 클래스에만 들어갈 수 있지만 다른 클래스에는 들어갈 수 없습니까?

정말로 모든 .NET 소스 코드에 들어가기로 결심했다면 Jetbrain의 DotPeek를 사용하고 .NET 어셈블리를 디스크에 실제 .cs 파일로 디 컴파일 할 수 있습니다. 그럼 이걸 보면

소스 코드를 찾을 수없는 예

이제 DotPeek를 사용하여 디 컴파일 한 소스 코드로 디스크를 탐색 할 수 있습니다. 프로젝트에서 참조하는 것과 동일한 어셈블리 버전을 디 컴파일했는지 확인하십시오. 그렇지 않은 경우 기호가 올바른 소스 행 번호와 일치하지 않을 수 있습니다.

대신이 "소스를 찾을 수 없음"이 지속적으로 나타나는 것을 숨기고 소스가없는 코드를 입력하지 않으려면 @Alex Sherman의 답변을 읽으십시오 . 문제가되는 파일이 어떤 어셈블리에 포함되어 있는지 파악한 다음 해당 어셈블리 이름을 제외 목록에 추가해야합니다.

생각할만한 음식, 나는 Rider over VS의 팬이 아닙니다. Rider는 여전히 터치 원시이며 VS에 내장 된 도구가 부족합니다. 하나!! 나는 잡초에 더 깊이 들어갈 수 있다는 것을 알고있는 이런 경우에 나란히 설치하는 것을 좋아합니다.


7

빌드가 문제를 해결하기 전에 솔루션을 청소 하십시오.

탐색하고 클릭하십시오.

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

7

나는 위에서 모든 답변을 시도했지만 아무것도 작동하지 않았습니다.

이것은 나를 위해 해결했습니다.

Debug -> Delete all Breakpoints

그리고 그것은 문제를 해결했습니다! 이 문제를 일으키는 여러 가지 요인이 있습니다.


JIT 디버거 설정의 모든 조합을 시도하고, 솔루션을 정리하고, VS2019를 수백 번 다시 시작하고, 복구하고, 모든 설정을 재설정하는 등의 작업을 수행 한 후 "소스를 찾을 수 없음"오류가 사라진 모든 중단 점을 삭제했습니다. , XUnit 테스트를 디버그하려고 할 때. AAAAAAAAAAARGH. 그리고 당신은 @HomeMade 감사
— 테드

추가 단계로-솔루션을 정리하고 다시 빌드하여 솔루션을 작동시켜야했습니다.
— Naren

1

같은 문제가 있었지만 위에서 제안한 솔루션 모두 문제 해결에 도움이되지 않았습니다. VS 2017에서 발생했습니다. Visual Studio 2019에서 프로젝트를 실행했을 때 모든 것이 작동했습니다. 따라서 다른 환경에서 실행 해보십시오. 이 답변이 누군가를 도울 수 있기를 바랍니다.


그것은 나를 도왔다. 2019를 설치했고 모든 것이 다시 작동합니다. 설정을 엉망으로 만들었을 수도 있습니다.
— 모 D 제네시스

0

오류가 "nullable.cs"또는 다른 핵심 소스 파일을 찾는 데서 발생한 경우 :

를 사용하여 특정 모듈에 대한 기호를 비활성화 Debug -> Options -> Debugging -> Symbols한 다음 맨 아래에 표시 할 수 있습니다 Specify Excluded Modules.

이것은 당신이 경우에 유용 할 당신이 PDB의를 가지고 다른 어셈블리에 단계로 비활성화 "내 코드 만"싶어합니다. Visual Studio에 대한 기호가 함께 제공 mscorlib.dll되지만 소스는 포함되어 있지 않으므로 가끔씩 "nullable.cs"또는 다른 핵심 소스 파일을 찾습니다.



0

프로젝트에서 NuGet 패키지를 업데이트 할 때이 오류가 발생했지만 솔루션의 다른 프로젝트에서 업데이트하지 못했습니다.

솔루션의 NuGet 관리자로 이동하여 솔루션의 모든 프로젝트가 동일한 버전을 사용하도록 보장하는 통합 기능을 사용하여 문제가 해결되었습니다.


0

제 경우에는 수업 이름을 바 꾸었습니다. 다른 모듈과 혼동되었을 수도 있습니다. 이름을 바꾼 후에는 들어갈 수있었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.