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

本文为作者原创,转载请注明出处:https://www.cnblogs.com/zhaoqingqing/p/6751757.html



前言#

我在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

作者:赵青青   一名在【网易游戏】做游戏开发的程序员,擅长Unity3D,游戏开发,.NET等领域。
本文版权归作者和博客园共有,欢迎转载,转载之后请务必在文章明显位置标出原文链接和作者,谢谢。
如果本文对您有帮助,请点击【推荐】您的赞赏将鼓励我继续创作!想跟我一起进步么?那就【关注】我吧。
posted @   赵青青  阅读(24176)  评论(4编辑  收藏  举报
编辑推荐:
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
阅读排行:
· 10亿数据,如何做迁移?
· 推荐几款开源且免费的 .NET MAUI 组件库
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 易语言 —— 开山篇
· Trae初体验
历史上的今天:
2016-04-23 VS设置程序集属性(文件的详细信息)
点击右上角即可分享
微信分享提示
CONTENTS