2012-03-14 42 views
33

Tôi biết rằng I can set up Visual Studio to debug through the .NET framework source code.Duyệt mã nguồn .NET Framework từ Visual Studio

Nhưng có cách nào để tôi có thể duyệt mã trong khi KHÔNG gỡ lỗi - tức là, có thể nhấn F12 hoặc "Chuyển sang định nghĩa" không?

Tôi nghĩ rằng nếu tính năng đó không được tích hợp trong Visual Studio thì có thể có một plugin có thể thêm vào nó?

+0

Tính năng này chỉ có thể hoạt động khi bạn có các dự án được tải trong một giải pháp sao cho IntelliSense có thể phân tích chúng. Rõ ràng bạn không muốn một giải pháp xây dựng tất cả các assembly của .NET framework. –

Trả lời

8

Tôi vừa phát hiện ra tiện ích mở rộng này xử lý khá nhiều vấn đề của tôi.Điều duy nhất là nó mở nguồn trong trình duyệt chứ không phải trong Visual Studio, nhưng nó không có vấn đề lớn bởi vì ngay cả trong trình duyệt, bạn có thể nhấp vào mã nguồn để điều hướng đến các loại, v.v.

Đó là presented on Scott Hanselman's blog một vài ngày trước:

Thành viên cộng đồng và coder tuyệt vời Schabse Laks đã tạo tiện ích Visual Studio cho VS2010, 2012 và 2013! Phần mở rộng này sẽ gửi các cuộc gọi đến Go To Definition (hoặc nhấn F12 trên một biểu tượng) trực tiếp đến mã trực tuyến (khi đó là mã .NET Framework, không phải của bạn).

Bạn có thể download this companion "Ref12" Visual Studio Extension now! Chỉ cần định nghĩa Goto trên bất kỳ loại .NET nào chúng tôi có nguồn và nó sẽ khởi chạy trình duyệt mặc định của bạn để bạn có thể tự mình khám phá nguồn .NET Framework! Cảm ơn Schabse!

+0

Không hoạt động với tính năng Resharper –

+0

Không hoạt động với webapi, ngoại trừ giao diện của mọi thứ – War

2

Tôi chưa bao giờ cố gắng này, nhưng được cho là các mã được công bố rộng rãi:

[Chỉnh sửa]

http://referencesource.microsoft.com/

+0

Chắc chắn - đó là những gì VS sử dụng trong chế độ gỡ lỗi (khi được thiết lập như trong liên kết ở trên). Nhưng làm thế nào để tôi thiết lập VS để nó có thể tìm và hiển thị mã nguồn cho tôi khi tôi không gỡ lỗi? Liên kết –

+0

là http://referencesource.microsoft.com/ – juFo

0

Có là .NET Mass Downloader, nhưng tôi nghĩ câu trả lời đơn giản cho câu hỏi của bạn, Không.

Tuy nhiên bây giờ tôi thấy Microsoft đã làm cho mã dễ dàng tải xuống hơn. Tuy nhiên, lưu ý rằng ngay cả đối với mã của riêng bạn, khi không gỡ lỗi, trừ khi bạn mở dự án, VS không giúp bạn tìm mã nguồn (mặc dù khi bạn tự mình tìm điểm ngắt sẽ hoạt động khi bạn bắt đầu gỡ lỗi lần nữa, nếu các tập tin .pdb tương ứng).

6

Tôi đã tải xuống mã nguồn .NET Framework từ đây http://referencesource.microsoft.com/netframework.aspx.

Vì tôi đang làm việc với .NET 4.0, tôi đã chọn ".Net/4" từ danh sách. (Là gì" .NET/8.0" trong danh sách đó Không có ý tưởng?.)

tôi đã viết một số kịch bản để sắp xếp lại mớ hỗn độn đẫm máu họ cung cấp cho chúng tôi:

  • Into một hệ thống phân cấp hợp lý các thư mục;
  • Để xóa mã trùng lặp (tại sao mỗi tệp được tăng gấp đôi hoặc cài đặt của tôi xấu?);
  • Đổi tên tất cả các không gian tên cấp cao nhất để không xung đột với các không gian tên gốc được đưa vào Intellisense.
  • Ví dụ: System.Windows.Controls -> xSystem.Windows.Controls

Sau đó làm theo các bước sau:

  1. Tạo một dự án Visual Studio mới của loại "Class Library"
  2. Remove tất cả các tham chiếu - vâng, ngay cả các tham chiếu hệ thống.
  3. Kéo/thả tất cả mã .NET đã được lưu trữ vào thư mục gốc của dự án của bạn.
  4. Chờ khoảng 30 phút để xử lý VS. VS sẽ xuất hiện để đóng băng; kiên nhẫn.

Intellisense/ReSharper vẫn phàn nàn về nhiều vấn đề, nhưng bây giờ tôi có thể nhấp chuột phải và chọn "Đi tới Tuyên bố/Triển khai".

Visual Studio là khoảng 600MB với dự án này được tải.

+1

bạn có thể chia sẻ tập lệnh hoặc tệp .sln cuối cùng của mình không? – Felix

+1

có, sẽ là tuyệt vời để chia sẻ kết quả cuối cùng, vì vậy tất cả những người khác không phải làm tương tự 'nhàm chán' thủ tục đổi tên và như vậy. –

3

Tôi đang sử dụng Visual Studio 2013 Ultimate.

1. Chọn menu: CỤ \ Extensions và cập nhật ...

enter image description here

2. Chọn Visual Studio Gallery \ Kết quả tìm kiếm. Cụm từ tìm kiếm: Ref12.

enter image description here

3. Tải về sau đó cài đặt.

enter image description here

4. Khởi động lại Visual Studio.

5. Hãy thử: Nhấp chuột trên lớp hoặc phương pháp, nhấn F12 và xem kết quả tại http://referencesource.microsoft.com/

+0

Cảm ơn, nhưng đây là bản sao của câu trả lời tôi đã đăng 1 năm trước. –

12

Với ReSharper nó có thể duyệt nguồn NET bằng cách cho phép ReSharper -> Options -> Tools -> Nguồn bên ngoài -> Điều hướng đến Nguồn. Sau khi bật tùy chọn này, mục menu mới "Điều hướng đến -> Nguồn được biên dịch" xuất hiện bằng cách nhấp chuột phải vào loại/phương pháp/bất kỳ điều gì. Điều hướng cũng hoạt động với F12 đối với tôi.

+0

Nó chỉ hiển thị thông tin giao diện nhưng không hiển thị mã nguồn thực tế (nội dung của các phương thức). Hay tôi đang làm gì sai? –

+0

Xin lỗi. Lỗi của tôi. Nó hoạt dộng bây giờ. Tôi đoán tôi đã phải xây dựng lại ;-) Ngọt ngào! Bây giờ tôi có thể F12 vào các nguồn .NET! –

Các vấn đề liên quan