2012-03-14 152 views
33

我知道I can set up Visual Studio to debug through the .NET framework source code从Visual Studio浏览.NET Framework源代码

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

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

+0

只有在解决方案中加载了项目以便IntelliSense可以解析它们时,此功能才能正常工作。很明显,你不需要一个构建所有.NET框架程序集的解决方案。 – 2012-05-21 17:57:26

回答

8

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

这是presented on Scott Hanselman's blog几个天前:

社区成员和神话般的编码器Schabse Laks已创建VS2010,2012和2013的Visual Studio扩展!此扩展将呼叫直接发送到“转到定义”(或在符号上按F12)到代码中(当它是.NET Framework代码时,不是您的代码)。

您可以download this companion "Ref12" Visual Studio Extension now!只需转到任何.NET类型的定义,我们有源代码,它将启动您的默认浏览器,以便您可以亲自浏览.NET Framework源代码!感谢Schabse!

+0

不适用于Resharper – 2015-07-28 05:57:01

+0

不适用于webapi,无论是外观 – War 2015-09-16 15:19:19

2

我从来没有试过,但所谓的代码是公开的:

[编辑]

http://referencesource.microsoft.com/

+0

当然 - 这是VS在调试模式下使用的(当在上面的链接中设置时)。但是,我如何设置VS,以便在我不调试时可以找到并显示源代码? – 2012-03-14 04:25:36

+0

链接是http://referencesource.microsoft.com/ – juFo 2015-03-09 08:54:53

0

还有就是.NET Mass Downloader,但我想简单回答你的问题是,没有。

但是我现在看到微软已经让代码更容易下载。

尽管如此,即使对于你自己的代码,如果不进行调试,除非你打开项目,VS并不能帮助你找到源代码(即使你自己找到它,当你再次开始调试时,如果.pdb文件相对应)。

6

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

智能感知/ ReSharper仍然抱怨堆的问题,但现在我可以右键单击并选择“转到声明/实施”。

加载此项目时,Visual Studio约为600MB。

+1

你能分享你的脚本或最终的.sln文件吗? – Felix 2013-01-05 04:54:35

+1

是的,分享最终结果会很棒,所以其他人不必做同样的“无聊”重命名程序等等。 – 2013-08-14 08:22:40

3

我正在使用Visual Studio 2013 Ultimate。

选择菜单:TOOLS \扩展和更新...

enter image description here

2.选择Visual Studio库\搜索结果。搜索条件:Ref12

enter image description here

下载然后安装。

enter image description here

4.重新启动Visual Studio。

5.尝试:点击类或方法,按F12鼠标,看看在http://referencesource.microsoft.com/

+0

谢谢,但这是我在1年前发布的答案的复本。 – 2017-03-21 04:41:49

12

结果和ReSharper的有可能通过使ReSharper的浏览.NET源 - >选项 - >工具 - >外部来源 - >导航到来源。 启用此选项后,右键单击类型/方法/任何内容,会出现新的菜单项“导航至 - >反编译源码”。 导航也适用于我的F12。

+0

它只显示接口信息,但不显示实际的源代码(方法的内容)本身。或者我做错了什么? – 2017-05-13 16:14:34

+0

对不起。我的错。它现在有效。我想我必须重建;-) 甜!现在我可以将F12转换成.NET资源! – 2017-05-13 16:25:39

相关问题