.NET Framework 版本 | System.dll 版本 | 编译日期 | 文件大小 |
1.0 | 1.0.3705.0 | 2002-1-5 | 1,136KB |
1.1 | 1.1.4322.573 | 2003-2-21 | 1,188KB |
2.0,3.0 | 2.0.50727.42 | 2005-9-23 | 2,948KB |
2.0 SP1,3.0 SP1,3.5 | 2.0.50727.1433 | 2007-10-24 | 3,004KB |
3.5 SP1 Beta | 2.0.50727.3031 | 2008-4-18 | 2,964KB |
CurrentVersion/Internet Settings/5.0/User Agent/Post Platform 位置新建字符串(REG_SZ),值为 Microsoft-Symbol-Server/6.8.0004.0,数据留空。 如果你的浏览器是 firefox 3,你可以在 about:config 页面中新建字符串 general.useragent.overrIDe,设置它的值为 Microsoft-Symbol-Server/6.8.0004.0。 如果你使用其它浏览器,如 Maxthon,或者安装了浏览器增强插件,如 IE7Pro,你可以尝试在它们的配置中设置 User-Agent 的值。 这一步是为了让符号服务器能够识别其后的下载请求。设置完成后需要重启浏览器。 在程序集文件中检索 PDB 信息 以 mscorlib.dll 2.0.50727.1433 为例,它一般位于 C:/windows/Microsoft.NET/Framework/v2.0.50727 目录下。 如果你安装了 Visual C++,你可以用它的命令行工具 dumpbin 导出整个 mscorlib.dll 的 PE 结构信息。找到 DeBUG DirectorIEs 一段,注意 Format 后面的值:RSDS,{56470DDE-A10F-45F4-A409-7FF9274F4923},1,mscorlib.pdb。 这是 CV_INFO_PDB70 结构的数据,含义如下:
类型 | 名称 | 值 | 含义 |
DWORD | CvSignature | RSDS | 表明当前 CodeVIEw 块的格式是 PDB 7.0 |
GUID | Signature | {56470DDE-A10F-45F4-A409-7FF9274F4923} | .pdb 文件的数字签名 |
DWORD | Age | 1 | .pdb 文件的增量更新标识 |
BYTE[] | Pdbfilename | mscorlib.pdb | 以 /x0 结尾的 .pdb 文件的文件名 |
4F49231/mscorlib.pd_ 不难看出这个地址是如何来的: 首先是微软符号服务器地址 http://referencesource.microsoft.com/symbols; 其次是 .pdb 文件的文件名 mscorlib.pdb; 再次是它的 GUID 56470DDEA10F45F4A4097FF9274F4923; 而后是增量更新标识 1; 最后还是 .pdb 的文件名,不同的是,这里的扩展名为 .pd_。 顺便提一下,直接用 Internet Explorer 下载这个文件常常会半途中断,而且 ie7Pro 的 MinIDM 不支持 User-Agent 设置。因此这里 firefox 是更好的选择,用它直接下载或者通过 FlashGot 插件下载均可。如果是直接下载,和 Internet Explorer 一样,下载的内容会以网页形式呈现。这时不能直接保存页面,而应该打开页面的源代码,在那里保存文件为 mscorlib.pd_。 解压下载的 mscorlib.pd_ mscorlib.pd_ 是 cab 格式的文件,常见的压缩工具都支持这种格式。也可以用 windows 自带的命令行工具 expand 解压。解压后得到 mscorlib.pdb。 在 mscorlib.pdb 中找出源代码文件的下载地址 用文本编辑器打开 mscorlib.pdb,在乱码后面找到字符串 SRCSRV: ini --------------------------------------------。从这里开始的文本记录了 mscorlib.dll 源代码文件的文件名和其它必要信息。注意下面几个重要的名称/值对: 形如 http_AliAS=http://ReferenceSource.microsoft.com/source/.net/8.0 的根地址; 形如 http_EXTRACT_TARGET=%http_AliAS%/%var2%/%var3%/%var4%/%fnfile%(%var1%) 或者, 形如 SD_EXTRACT_TARGET=%targ%/%var2%/%fnbksl%(%var3%)/%var4%/%fnfile%(%var1%) 的逻辑地址。 逻辑地址要转换成真实地址,还必须有上面各变量 %x% 的实际值,这些值就在形如 f:/RedBits/ndp/clr/src/BCL/System/
Object.cs*DEVdiv*depot/Devdiv/releases/whIDbey/REDBITS/ndp/clr/src/BCL/System/Object.cs*1 的字符串中。 就以这个字符串为例,它对应的逻辑地址是 %targ%/%var2%/%fnbksl%(%var3%)/%var4%/%fnfile%(%var1%)。 用固定地址 http://ReferenceSource.microsoft.com/source/.net/8.0 替换 %targ%。如果逻辑地址包含的变量是 %http_AliAS% 而不是 %targ%,则用相应的 http_AliAS 值替换; 把上面的字符串以星号为分隔符分成四节: 用第一节中的文件名 Object.cs 替换 %fnfile%(%var1%); 用第二节 DEVdiv 替换 %var2%; 用第三节 depot/Devdiv/releases/whIDbey/REDBITS/ndp/clr/src/BCL/System/Object.cs 替换 %var3%; 用第四节 1 替换 %var4%; 把 %fnbksl% 括号中值的斜杠号替换成反斜杠号。 这样,我们就有了新的地址: http://referencesource.microsoft.com/source/.net/8.0/devdiv/depot/devdiv/releases/
whidbey/redbits/ndp/clr/src/bcl/system/object.cs/1/object.cs。 下载 Object.cs 源代码 用浏览器打开上面的地址,微软符号服务器并没有直接返回要下载的文件,而是返回一份 EulA(最终用户许可协议)。找到协议中形如 Accept=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 的字符串。把这串字符作为之前地址的参数,添加到它的后面。这就得到了最终的地址: http://referencesource.microsoft.com/source/.net/8.0/devdiv/depot/devdiv/releases/whidbey/
redbits/ndp/clr/src/bcl/system/object.cs/1/object.cs?accept=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,这就是我们要下载的 Object.cs 源代码的地址。 就在我写这篇教程的时候,Microsoft Symbol Servers 正巧在调整,时时连接不上,并且下载到的 .pd_ 文件版本也不一样。如果你也遇到这种情况,请隔天再试。 总结
以上是内存溢出为你收集整理的手动下载 .NET Framework 源代码全部内容,希望文章能够帮你解决手动下载 .NET Framework 源代码所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)