前言

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

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

Visual Studio(VS) F12 查看DLL源代码的更多相关文章

  1. 【转载】Visual Studio(VS) F12 查看DLL源代码

    https://www.cnblogs.com/zhaoqingqing/p/6751757.html esharper官网:https://www.jetbrains.com/resharper/ ...

  2. Visual Studio 2010/2013 查看DLL接口(函数)

    1. “应用程序" Visual Studio 2010/2013 的Visual Studio Tools文件夹中打开Visual Studio Command Prompt 命令提示窗口 ...

  3. 如何使用Visual Studio 2017自带的源代码反编译功能

    反编译C#源代码,大家可能第一时间想到 .NET Reflector 这个工具.但是这个工具反编译出来的代码跟实际源码还是有一定差距的,阅读起来不是很便利. 本人在查看Visual Studio 20 ...

  4. Visual Studio 创建和使用dll的方法

    DLL是一个包含可由多个程序同时使用的代码和数据的库. DLL文件就是把一些函数导出来,然后在新程序中进行复用的过程. 第一部分:使用Visual Studio 2010进行DLL的制作 生成方法一: ...

  5. 使用Visual Studio将C#生成DLL文件的方法

    1.命令方式 打开Visual Studio安装目录下的开发人员命令提示 译 File.cs 以产生 File.exe csc File.cs 编译 File.cs 以产生 File.dll csc ...

  6. Visual Studio编译与调用DLL方法

    参考自博客:http://www.cnblogs.com/houkai/archive/2013/06/05/3119513.html 用visual studio 2013新建win32 appli ...

  7. 怎么将visual studio项目打包生成dll文件

    1.打开电脑再打开visual studio软件,在软件里面新建一个项目,文件---->新建---->项目,打开新建项目窗口. 2.选择C#类工程,并为项目命名. 3.将类库文件class ...

  8. 如何使用Visual Studio 2017调试.net库源代码

    在Visual Studio 2017按如下步骤设置: 1.取消选中(工具 - >选项 - >调试 - >仅我的代码)复选框.2.确保设置了(工具 - >选项 - >调试 ...

  9. visual studio cl -d1reportSingleClassLayout查看内存f分布

    C:\Users\Administrator\Desktop\cppsrc>cl -d1reportSingleClassLayoutTeacher virtual.cpp 用于 x86 的 M ...

随机推荐

  1. 需要接入的SDK包,一定要用最新版,否则后果很严重

    ios8更新后,原来的静态库不支持.导致一个bug连续测试好多天都没结果.

  2. maven项目无法查看方法

    问题如图: 解决:

  3. HTML+CSS-淘宝网页

    <html> <head> <meta http-equiv="Content-Type" content="text/html;chars ...

  4. markown编辑器截图粘贴预览,并将图片传至七牛云

    最近在做一个项目,需要实现类似QQ截图后,就是能够在富文本编辑器中粘贴截图并预览. 先看一下效果: 分析一下实现步骤: QQ截图后在编辑器中粘贴,肯定会有一个粘贴事件,即 paste 事件 在事件回调 ...

  5. Spring+SpringMVC+MyBatis+easyUI整合基础篇(十二)阶段总结

    不知不觉,已经到了基础篇的收尾阶段了,看着前面的十几篇文章,真的有点不敢相信,自己竟然真的坚持了下来,虽然过程中也有过懒散和焦虑,不过结果还是自己所希望的,克服了很多的问题,将自己的作品展现出来,也发 ...

  6. lnmp pathinfo问题

    location / {              if (!-e $request_filename) {              rewrite  ^/(.*)$  /index.php/$1  ...

  7. fis-plus 学习笔记

    学习了一些fls-plus前端集成的东西:学的很皮毛,很多都是对官网的解释希望与大家分享,并能得到大家的指正. 参考文档:http://oak.baidu.com/fis-plus/document. ...

  8. windows phone 8.1常用启动器实例

    ---恢复内容开始--- 小梦今天给大家分享一下windows phone 8.1常用启动器实例,包括: 电话启动器 短信启动器 邮件启动器 添加约会|备忘到日历 地图启动器 地图路线启动器 wind ...

  9. Oracle数据块损坏的恢复实例

    测试环境:11.2.0.4 1.构建数据块损坏的测试环境 2.有备份:常规恢复坏块 3.无备份:跳过坏块 1.构建数据块损坏的测试环境 1.1 创建测试表 --Create Table t_test ...

  10. 解决VIM编辑器中文乱码

    追加如下内容到/etc/vimr (或者不同的用户家目录下的.vimrc文件中) set encoding=utf8filetype plugin indent onsyntax on" s ...