2012-03-14 104 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框架程序集的解決方案。 – 2012-05-21 17:57:26

回答

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源代碼!感謝Schabse!

+0

不適用於Resharper – 2015-07-28 05:57:01

+0

不適用於webapi,無論是外觀 – War 2015-09-16 15:19:19

2

我從來沒有試過,但所謂的代碼是公開的:

[編輯]

http://referencesource.microsoft.com/

+0

當然 - 這是VS在調試模式下使用的(當在上面的鏈接中設置時)。但是,我如何設置VS,以便在我不調試時可以找到並顯示源代碼? – 2012-03-14 04:25:36

+0

鏈接是http://referencesource.microsoft.com/ – juFo 2015-03-09 08:54:53

0

還有就是.NET Mass Downloader,但我想簡單回答你的問題是,沒有。

但是我現在看到微軟已經讓代碼更容易下載。

儘管如此,即使對於你自己的代碼,如果不進行調試,除非你打開項目,VS並不能幫助你找到源代碼(即使你自己找到它,當你再次開始調試時,如果.pdb文件相對應)。

6

我從這裏下載了.NET Framework源代碼http://referencesource.microsoft.com/netframework.aspx

由於我使用.NET 4.0,我從列表中選擇「.Net/4」。 (什麼是」 .NET/8.0" ,在列表中不知道?)

我寫了一些腳本來重新安排他們給我們的血腥的混亂:

  • 進入目錄的合理的層次結構;
  • 刪除重複的代碼(爲什麼每個文件加倍,或者我的安裝不好?);
  • 將所有頂級命名空間重命名爲不會與烘焙到Intellisense中的本機命名空間衝突。
  • 例:System.Windows.Controls程序 - > xSystem.Windows.Controls

然後按照下列步驟操作:

  1. 創建類型 「類庫」 的一個新的Visual Studio項目
  2. 刪除所有參考文獻 - 是的,甚至是系統文獻。
  3. 將所有按摩的.NET代碼拖放到項目的根目錄下。
  4. 等待大約30分鐘的VS處理。 VS會出現凍結;耐心一點。

智能感知/ ReSharper仍然抱怨堆的問題,但現在我可以右鍵單擊並選擇「轉到聲明/實施」。

加載此項目時,Visual Studio約爲600MB。

+1

你能分享你的腳本或最終的.sln文件嗎? – Felix 2013-01-05 04:54:35

+1

是的,分享最終結果會很棒,所以其他人不必做同樣的「無聊」重命名程序等等。 – 2013-08-14 08:22:40

3

我正在使用Visual Studio 2013 Ultimate。

選擇菜單:TOOLS \擴展和更新...

enter image description here

2.選擇Visual Studio庫\搜索結果。搜索條件:Ref12

enter image description here

下載然後安裝。

enter image description here

4.重新啓動Visual Studio。

5.嘗試:點擊類或方法,按F12鼠標,看看在http://referencesource.microsoft.com/

+0

謝謝,但這是我在1年前發佈的答案的複本。 – 2017-03-21 04:41:49

12

結果和ReSharper的有可能通過使ReSharper的瀏覽.NET源 - >選項 - >工具 - >外部來源 - >導航到來源。 啓用此選項後,右鍵單擊類型/方法/任何內容,會出現新的菜單項「導航至 - >反編譯源碼」。 導航也適用於我的F12。

+0

它只顯示接口信息,但不顯示實際的源代碼(方法的內容)本身。或者我做錯了什麼? – 2017-05-13 16:14:34

+0

對不起。我的錯。它現在有效。我想我必須重建;-) 甜!現在我可以將F12轉換成.NET資源! – 2017-05-13 16:25:39

相關問題