Visual Studio(VS) F12 查看DLL源代碼


前言

我在VS中調試某個函數時,突發奇想“能不能使用VS的F12(轉到定義)查看這個dll中當前函數的實現(源碼),而不是像VS自帶功能那樣只能看到函數名和參數?”

回想起來在安裝Resharp時,我注意到Resharp默認會勾選Dot Peek這個組件,並且家里的電腦在某次安裝完Resharp之后,按12會發現有個選項自定義F12的行為,我選了Resharxxxx,之后驚喜地發現F12可以導航進DLL的源代碼,但由於系統重裝,我想不起來是做了什么特殊設置。

 

Dot Peek

今天在調試時,又有這個需求,想查看dll的源代碼,我決定從dot peek這個程序入手去查找相關的資料

dot peek官網:https://www.jetbrains.com/decompiler/

從官網的簡介來看它可以反編譯.net 的dll,pdb為源代碼,並能生成解決方案,但沒有很明顯介紹這貨如何和vs緊密的結合起來,達到我需要的F12查看dll的源碼

經過搜索,查找到這篇文章,豁然開朗:https://knowledge.zomers.eu/visualstudio/Pages/How-to-enable-the-decompiler-in-ReSharper-for-Visual-Studio.aspx

 

使用方法

resharper官網:https://www.jetbrains.com/resharper/

1、安裝好Visual Studio,和Resharper(默認會勾選安裝Dot peek)

2、打開VS,在菜單欄 選擇 ResharperOptions ,打開Options窗口

3、在左側列表中,選擇 External Sources,勾選 Navigation to SourcesDecompile methods ,點擊 Save

image

4、在第一次按下F12時,會彈出用戶使用協議,選擇接受就可。

如果這個dll在本地不存在,第一次按F12時,會聯網從遠程下載。

 

每當你按下F12時,就可以跳到dll中查看具體的代碼實現啦。在每個類的頭部,可以發現這么一段注釋:

// Decompiled with JetBrains decompiler
// Type: TableML.TableFile
// Assembly: TableML, Version=0.7.6285.31046, Culture=neutral, PublicKeyToken=null
// MVID: E539F3DE-C53C-4567-99E9-7697E4765856
// Assembly location: D:\Git\xxx\TableML\TableML.dll

 

我的環境

說明:resharper 收費,dotpeek 免費

visual studio 2017 +  resharp 2017.1

visual studio 2015 + resharp 10.1


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM