从Visual Studio浏览.NET Framework源代码

Xav*_*nas 40 .net visual-studio

我知道我可以设置Visual Studio来通过.NET框架源代码进行调试.

但有没有一种方法可以在不调试时浏览代码 - 即能够按F12或"转到定义"?

我认为如果Visual Studio中没有内置该功能,那么可能会有一个插件可能会添加它?

tyt*_*yty 14

使用ReSharper,可以通过启用ReSharper - >选项 - >工具 - >外部源 - >导航到源来浏览.NET源.启用此选项后,右键单击类型/方法/任何内容,将出现新的菜单项"导航到 - >已解压缩的源".导航也适用于F12.

  • 它仅显示接口信息,而不显示实际的源代码(方法的内容)本身。或者我做错了什么? (2认同)

Xav*_*nas 12

我刚发现这个扩展几乎解决了我的问题.唯一的事情是它在浏览器中而不是在Visual Studio中打开源,但它没什么大不了的,因为即使在浏览器中,您也可以单击源代码导航到类型等.

几天前,它出现在Scott Hanselman的博客上:

社区成员和精彩的编码人员Schabse Laks为VS2010,2012和2013创建了Visual Studio扩展!此扩展将调用Go To Definition(或在符号上按F12)直接发送到在线代码(当它是.NET Framework代码时,而不是你的代码).

你现在可以下载这个伴侣"Ref12"Visual Studio Extension!Just Goto定义我们有源的任何.NET类型,它将启动您的默认浏览器,以便您自己探索.NET Framework源代码!谢谢Schabse!


Joh*_*n_J 11

Visual Studio 2017 15.6版中有一个非常新的功能

您可以看到没有任何插件的反编译源代码!顺便说一句,Ref12不适用于VS2017。

工具 > 选项,展开文本编辑器 > C# > 高级,然后启用“ 启用导航到反编译源(实验性) ”。

参考:https : //docs.microsoft.com/zh-cn/visualstudio/ide/go-to-and-peek-definition? view = vs-2017#view-decompiled-source-definitions-instead-of- metadata- C

  • 是的,这是一个很好的功能,但它显示的是反编译代码,而不是原始源代码(可在线获取)。 (4认同)

kev*_*rpe 6

我从http://referencesource.microsoft.com/netframework.aspx下载了.NET Framework源代码.

由于我使用的是.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似乎会冻结; 耐心点.

Intellisense/ReSharper仍抱怨大量问题,但现在我可以右键单击并选择"转到声明/实施".

加载此项目后,Visual Studio大约为600MB.


nhu*_*uvy 5

我正在使用Visual Studio 2013 Ultimate。

1.选择菜单:工具\扩展和更新...

在此处输入图片说明

2.选择“ Visual Studio库\搜索结果”。搜寻字词:Ref12

在此处输入图片说明

3.下载然后安装。

在此处输入图片说明

4.重新启动Visual Studio。

5.尝试:在“类”或“方法”上单击鼠标,按F12并在http://referencesource.microsoft.com/上查看结果