2012-03-14 2 views
33

나는 I can set up Visual Studio to debug through the .NET framework source code을 알고 있습니다.Visual Studio에서 .NET Framework 소스 코드 찾아보기

하지만 디버깅하지 않고 코드를 탐색 할 수있는 방법이 있습니까? 즉, F12 키 또는 '정의로 이동'을 누를 수 있습니까?

그 기능이 Visual Studio에 내장되어 있지 않다면 플러그인을 추가 할 수 있다고 생각합니까?

+0

이 기능은 IntelliSense에서 분석 할 수 있도록 프로젝트를 솔루션에로드 한 경우에만 작동합니다. 분명히 모든 .NET 프레임 워크 어셈블리를 빌드하는 솔루션은 필요하지 않습니다. –

답변

8

방금 ​​내 문제를 해결하는이 확장 프로그램을 발견했습니다.유일한 것은 Visual Studio가 아닌 브라우저에서 소스를 열어 놓았지만 브라우저에서도 유형 등으로 이동하기 위해 소스 코드를 클릭 할 수 있기 때문에 큰 문제는 아니지만

이것은 presented on Scott Hanselman's blog 일 전 :

커뮤니티 회원이자 멋진 코더 Schabse Laks 님이 VS2010, 2012 및 2013 용 Visual Studio 확장 프로그램을 만들었습니다. 이 확장 기능은 정의로 이동 (또는 심볼의 F12 키 누르기)에 대한 호출을 온라인 (코드가 아닌 .NET Framework 코드 일 경우)으로 직접 보냅니다.

download this companion "Ref12" Visual Studio Extension now 수 있습니다! 우리가 소스를 가지고있는 모든 .NET 유형에 대해 그냥 고토 정의를하면 기본 브라우저가 시작되어 .NET Framework 소스를 직접 탐색 할 수 있습니다! 고마워요!

+0

Resharper 함께 작동하지 않습니다 –

+0

보이는 것만으로 webapi에서 작동하지 않습니다 – War

2

나는이 시도 적이 있지만, 아마도 코드가 공개되어있다 :

[편집]

거기 .NET Mass Downloader,하지만 난이 질문에 대한 직접적인 대답은 생각

http://referencesource.microsoft.com/

+0

물론 VS가 디버그 모드에서 사용하는 것입니다 (위의 링크 에서처럼 설정 한 경우). 하지만 디버깅하지 않을 때 VS를 설정하여 나를위한 소스 코드를 찾고 표시 할 수 있습니까? –

+0

링크는 http://referencesource.microsoft.com/ – juFo

0

, 아니.

그러나 Microsoft에서 코드를보다 쉽게 ​​다운로드 할 수있게되었습니다.

비록 자신의 코드라도 디버깅을하지 않으면 프로젝트를 열지 않는 한 VS는 소스 코드를 찾는데 도움이되지 않습니다 (디버깅을 다시 시작할 때 중단 점을 찾았을 때도 마찬가지입니다) .pdb 파일이 해당하는 경우).

6

http://referencesource.microsoft.com/netframework.aspx에서 .NET Framework 소스 코드를 다운로드했습니다.

.NET 4.0으로 작업 중이므로 목록에서 ".Net/4"를 선택했습니다. (이 목록에서 ".NET/8.0"는 무엇입니까 어떤 생각?.) 나는 그들이 우리에게주는 피 묻은 엉망 다시 정렬 할 몇 가지 스크립트를 작성

: 디렉토리의 합리적인 계층 구조로

  • 을;
  • 중복 된 코드를 제거하려면 (모든 파일이 왜 두 배가되었거나 나쁘게 설치 되었습니까?);
  • 모든 최상위 네임 스페이스의 이름을 Intellisense로 구운 기본 네임 스페이스와 충돌하지 않게 변경합니다.
  • 예 : System.Windows.Controls -> xSystem.Windows.Controls

그런 다음 다음과 같이하십시오

  1. 유형 "클래스 라이브러리"의 새로운 비주얼 스튜디오 프로젝트를 만듭니다
  2. 제거를 모든 참조 - 네, 심지어 시스템 것.
  3. 모든 마사지 된 .NET 코드를 프로젝트의 루트로 끌어다 놓습니다.
  4. VS 처리를 위해 약 30 분을 기다리십시오. VS가 고정 된 것으로 보입니다. 참을성 있으십시오.

Intellisense/ReSharper는 여전히 문제의 힙에 대해 불평하지만 이제는 마우스 오른쪽 버튼을 클릭하고 "선언/구현으로 이동"을 선택할 수 있습니다.

Visual Studio는이 프로젝트가로드 된 상태에서 약 600MB입니다.

+1

입니다. 스크립트 또는 최종 .sln 파일을 공유 할 수 있습니까? – Felix

+1

예, 최종 결과를 공유하는 것이 좋을 것이므로 다른 모든 사람들은 이름 바꾸기와 같은 '지루한'절차를 수행 할 필요가 없습니다. –

3

Visual Studio 2013 Ultimate을 사용하고 있습니다.

1 메뉴를 선택 : 확장 및 업데이트 \ TOOLS ...

enter image description here

2Visual Studio 갤러리 \ 검색 결과를 선택합니다. 검색어 : Ref12.
enter image description here

3. 다운로드
후 설치합니다.
enter image description here

4. 다시 시작 비주얼 스튜디오
.

5.보십시오 : 그것은 ReSharper에서 가능하게하여 .NET 소스를 검색하는 것이 가능 ReSharper에서 함께 http://referencesource.microsoft.com/

+0

감사합니다,하지만 이것은 1 년 전에 게시 한 답변의 중복입니다. –

12

에서 결과 클래스 나 메소드를 눌러 F12에 마우스를 클릭하고 참조 -> 옵션 -> 도구 -> 외부 소스 -> 소스 탐색. 이 옵션을 활성화하면 type/method/whatever를 마우스 오른쪽 버튼으로 클릭하여 새로운 메뉴 항목 "Navigate To -> Decompiled Sources"가 나타납니다. 내비게이션 또한 나를 위해 F12와 함께 작동합니다.

+0

인터페이스 정보 만 표시하고 실제 소스 코드 (메소드의 내용)는 표시하지 않습니다. 아니면 내가 잘못하고있는거야? –

+0

죄송합니다. 내 잘못이야. 이제 작동합니다. 나는 내가 재건해야한다고 생각한다 ;-) Sweet! 이제 F12를 .NET 소스에 추가 할 수 있습니다. –

관련 문제