原文出处:http://blogs.microsoft.co.il/blogs/arik/archive/2010/07/12/step-into-net-framework-4-0-source-code.aspx

本文将向你展示如何配置Visual Studio 2010逐语句执行.NET Framework 4.0源代码。

为啥?

因为很酷。

因为能帮助调试。

你不仅能看到源代码而且能逐语句执行。

因为和 Reflector不同, 你可以获得代码以及原始的注释和变量名称!

第一步:下载源代码

地址:http://referencesource.microsoft.com/netframework.aspx

下载产品名称(Product Name)为.NET,版本(Version)为4的记录,有175MB。

第二步:安装源代码

安装 “Net_4.msi”

我将它安装到: “D:\RefSrc\” 
安装source和Symbols大概需要1GB的空间 (你是否比较兴奋?)

第三步:安装 Visual Studio 2010

配置Visual Studio 2010:

1. 打开 Visual Studio 2010

2. 从工具(Tools)菜单, 选择选项(Options).

3. 在选项(Options)的对话框中,打开 调试Debugging)节点并选择 常规(General)

- 取消  "启用仅我的代码(仅限托管)" "Enable Just My Code (Managed only)"

-选中  ”启用源服务器支持"  "Enable source server support"

- 取消 "要求源文件与原始版本完全匹配 " "Require source files to exactly match the original version"

- 取消  "逐过程执行属性和运算符(仅限托管) " "Step over properties and operators (Managed only)”

4. 选择调试(Debugging)下面的符号(Symbols)

在符号文件位置框中,添加下载的符号位置: 
“D:\RefSrc\Symbols”

注意:添加符号路径请点击文件夹图标 
     
符号缓存目录中输入:

“D:\RefSrc\Symbols\Cache”

现在你可以按F11(逐语句).NET 源代码了。

故障排除

如果你没有看到符号,试着如下操作:

  • 确认是在.NET Framework 4.0下面调试你的程序。

  • 确认不是安装在\Program Files\下面,如果你已经安装在这里,你可以以管理员身份运行Visual Studion 2010或者更换缓存目录换成其他可写的目录。
  • 运行时,右键调用堆栈,有一些变灰的.NET功能,选择 ”加载符号从"Load Symbols From” ”符号路径" "Symbol Path”.

  • 如果你遇到"No Source Available” , 试着点击“Browse to Find Source” 并在源码目录中找到你需要的文件。也许你可能使用文件搜索找到它。

最好,你可以在http://referencesource.microsoft.com/找到更多信息。

源码:在线阅读http://referencesource.microsoft.com/#mscorlib/system/collections/arraylist.cs

.NET Framework 4.0源代码的更多相关文章

  1. 编译器错误消息: CS0016: 未能写入输出文件“c:/Windows/Microsoft.NET/Framework/v2.0.50727/....dll”--“拒绝访问。

    错误如下: “/”应用程序中的服务器错误. 编译错误 说明: 在编译向该请求提供服务所需资源的过程中出现错误.请检查下列特定错误详细信息并适当地修改源代码. 编译器错误消息: CS0016: 未能写入 ...

  2. Entity Framework 5.0.0 Function Import 以及 ODP. NET Implicit REF CURSOR Binding使用简介

    源代码 概要: 1,说明如何使用Entity Framework中的function import功能. 2,说明如何使用ODP.NET的隐式REF CURSOR绑定(implicit REF CUR ...

  3. ASP.NET Core 2.0 源代码

    ASP.NET Core 2.0 源代码 在Visual Studio 2017中可以通过符号以及源链接,非常方便对 ASP.NET Core 2.0中源代码进行调试.在这篇文章中,我们将重点介绍如何 ...

  4. 开发 ASP.NET vNext 续篇:云优化的概念、Entity Framework 7.0、简单吞吐量压力测试

    继续上一篇<开发 ASP.NET vNext 初步总结(使用Visual Studio 2014 CTP1)>之后, 关于云优化和版本控制: 我本想做一下MAC和LINUX的self-ho ...

  5. [EF2]Sneak Preview: Persistence Ignorance and POCO in Entity Framework 4.0

    http://blogs.msdn.com/b/adonet/archive/2009/05/11/sneak-preview-persistence-ignorance-and-poco-in-en ...

  6. Windows7安装 .net framework 4.0

    1.首先下载安装包.net framework 4.0点击下载即可 2.安装,双击下载好的安装包

  7. ".NET Compact Framework v2.0 could not be found."

    参考: http://blog.csdn.net/godcyx/article/details/7348431 问题原因: That's a known issue where VS can't di ...

  8. [已解决]:调用 LoadLibraryEx 失败,在 ISAPI 筛选器 "c:\Windows\Microsoft.NET\Framework\v4.0.30319\\aspnet_filter.

    现象:我的是 win7, iis7, 64bit, 打开网站错误如下: 错误摘要 HTTP 错误 500.0 - Internal Server Error 调用 LoadLibraryEx 失败,在 ...

  9. You may receive an exception when you browse a .NET Framework 2.0 ASP.NET Web application

    SYMPTOMS When you browse a Microsoft .NET Framework 2.0 ASP.NET Web application, you may receive one ...

随机推荐

  1. mongo 记得开启验证 auth = true

    dbpath=/mnt/mongodb/data/logpath=/usr/local/mongodb/log/mongodb.logauth = trueport=27017logappend=1f ...

  2. BFS-广度优先遍历

    #include <iostream> #include <queue> using namespace std; /* 5 4 0 0 1 0 0 0 0 0 0 0 1 0 ...

  3. VS2017安装PCL1.8.1

    很多使用在windows环境下编译和使用PCL,这样让我想试试,所以就迫不得已的放弃使用Ubuntu环境,但是我还是建议使用Ubuntu系统,毕竟在Ubuntu下几条命令就搞定了,为了迎合在windo ...

  4. linux 常见错误

    yum.pid 已被锁定 rm -rf /var/run/yum.pid

  5. svn出现skips remain conficted,不能更新代码问题

    出现: skips remain conficted One or more files are in a conflicted state 然后commit的时候出现,很多都已经deleted,但是 ...

  6. Enums and Lookup Tables with EF Code First

    With EntityFramework’s support for enums, there is no longer any need to include lookup tables in th ...

  7. 实验二 C#程序设计 总结

    通过本次实验,我按照书上的例子,一个例子一个例子地写下来,前七点感觉和C语言差不多,除了语法稍稍不同外,大体上是一样的.到了第八点,对异常的处理,另我十分印象深刻.因为我做例3.21的时候,按照例子要 ...

  8. VIM中一些按键的作用:

    表示范围的命令: l: 表示一个字符,可以于操作符组合使用: aw :表示一个单词: 不会count 空格:  前面可以加数字的: iw:  选中一些单词, 会包括空格: 前面可以加数字: ap: 表 ...

  9. Spring JDBC ResultSetExtractor接口示例

    org.springframework.jdbc.core.ResultSetExtractor接口是JdbcTemplate的查询方法使用的回调接口.此接口的实现执行从ResultSet提取结果的实 ...

  10. QA:无法为具有固定名称“MySql.Data.MySqlClient”...

    Question: 无法为具有固定名称“MySql.Data.MySqlClient”的 ADO.NET 提供程序加载在应用程序配置文件中注册的实体框架提供程序类型“MySql.Data.MySqlC ...