文章主要阐述两个方面的主要内容:第一、.Net Framework Source Code的发布;第二、如何对.Net Framework Source Code进行单步调试。
第一、.Net Framework Source Code的发布。
Scottgu发布的一篇文章,已经详细说明了开源的Libraries。这里,我想讲的是.Net Framework Source Code是基于MS-RL(Microsoft Reference License)许可下发布的。这里有一篇关于.Net Framework Source Code的文章ttp://blog.joycode.com/scottgu/archive/2007/10/04/109100.aspx,有兴趣的朋友可以阅读一下。
第二、如何对.Net Framework Source Code进行单步调试。
这里我主要针对VS2005IDE环境下对.Net Framework Source Code的单步调试。首先,在Codeplex的网站下载一个.Net Mass Downloader的程序,这个程序主要用来从微软符号服务器下载源代码到本地硬盘。这里有几点要注意的:你必须先下载.Net Framework3.5,3.0,2.0的安装包,并安装完成后方可下载,否则的话,你会下载不到任何源代码。打开VS2005命令提示窗口,输入命令,如下:C:\netmassdownloader>netmassdownloader -d "C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5" -d "C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0" -d "c:\Windows\Microsoft.net\framework\v2.0.50727" -output C:\ReferenceSource。这时候的下载将会花费你很长的时间。接着它便会将源代码逐个下载到C盘的ReferenceSource文件夹里面。然后,打开VS2005,在工具->选项->调试->常规中,将“启用源服务器支持”和“要求源文件与原始版本完全匹配”的复选框的勾去掉。如图所示:
第二步、在工具->选项->调试->符号中,输入C:\ReferenceSource,如图所示:
第三步、在项目解决方案属性的通用属性中的调试源文件中输入C:\ReferenceSource,可惜的是我的VS2005输入不了,截不了图给大家看了。不知道是不是要安装SP1补丁才可以呢?只好在注册表里面改了,操作如下:打开注册表,在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0下面有一个Key叫Source Directories,把你的本地源代码路径添到最前并以分号(;)结尾即可。
最后,建立一个名称为”DebugSourceCode”的项目来进行单步调试。在Default.aspx.cs中输入代码如下:using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["CliqiueSiteNewsBlog"].ConnectionString);
}
}
对它设置断点,并按F11进行单步调试,效果图:
对System.Data.dll加载符号信息后来调试DbConnectionHelper.cs和DBConnection.cs。这里注意一点就是必需下载到System.Data.pdb文件才可以。效果图:
DbConnectionHelper.cs:
DBConnection.cs:
上面两张截图,实现了数据库连接的原理。
从符号加载信息图来看,System.Data.pdb已经被加载了。如图所示:
最后,我以此文作抛砖引玉之举,希望大家发表各自的看法。如果本文有什么错误的话,也恳求大家指教!
<script type="text/javascript"><!--
google_ad_client = "pub-0124832239150973";
//728x90, 创建于 07-12-17
google_ad_slot = "7028025131";
google_ad_width = 728;
google_ad_height = 90;
//--></script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<div align="center"><a href="http://www.4electronicscoupons.com/rd.html?store=518"><img border="0" src="http://c8.amazingcounters.com/counter.php?i=1777680&c=5333353" alt="Buy.com Coupon"></a></div>
评论