繁体   English   中英

从 Visual Studio 浏览 .NET Framework 源代码

[英]Browsing the .NET Framework source code from Visual Studio

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

但是有没有一种方法可以让我在不调试的同时浏览代码——即,能够按 F12 或“转到定义”?

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

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

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

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

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

使用 ReSharper,可以通过启用 ReSharper -> Options -> Tools -> External Sources -> Navigation to Sources 来浏览 .NET 源。 启用此选项后,通过右键单击类型/方法/任何内容,会出现新菜单项“导航到-> 反编译源”。 导航也适用于我的 F12。

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

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

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

您现在可以下载这个配套的“Ref12”Visual Studio 扩展 只需在我们拥有源代码的任何 .NET 类型上转到定义,它就会启动您的默认浏览器,以便您可以自己探索 .NET Framework 源代码! 谢谢沙布斯!

我从这里下载了 .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 会出现冻结; 要有耐心。

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

加载此项目后,Visual Studio 大约有 600MB。

我正在使用 Visual Studio 2013 Ultimate。

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

在此处输入图片说明

2.选择Visual Studio Gallery \\ Search Results 搜索词: Ref12

在此处输入图片说明

3.下载然后安装。

在此处输入图片说明

4.重新启动 Visual Studio。

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

我从来没有试过这个,但据说代码是公开的:

[编辑]

http://referencesource.microsoft.com/

.NET Mass Downloader ,但我认为对您的问题的直接答案是,不。

但是,我现在看到 Microsoft 使代码更易于下载。

不过请注意,即使对于您自己的代码,在不调试时,除非您打开了项目,否则 VS 不会帮助您定位源代码(即使您自己找到了断点,当您再次开始调试时,如果.pdb文件对应)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM