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


93

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

그러나 이후에 .NET 코드로 들어 가려고 할 때마다 관련 cs 파일의 위치를 ​​지정하라는 메시지가 표시됩니다. 오류 메시지는 You need to find <filename>.cs to view the source for the current call stack frameThe 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.csTask.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.