文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院网络编程Asp.Net自动下载完整的.NET源代码
精品推荐
特别推荐
·技巧实例:ASP.NET生成静态页面实现方法
·ASP.NET、JSP及PHP之间的抉择
·.net基础知识错误注意二十二点知识
·asp.net2.0学习历程 菜鸟到中级程序员的飞跃
·.NET基础知识-什么是.NET
·初学C#+ASP.NET+Oracle时积累的备忘点滴
·专家详解:复杂表达式的执行步骤
·asp.net中的加密方法
·DataGrid常见关注问题解决方案
·学习笔记 ASP.NET 5种页面转向法
热点TOP10
·DataList嵌套实例
·C#中势将窗体拖拽进行到底
·Paint.NET 3.20正式版下载
·ASP.NET2.0的multiview和wizard控件
·.net基础知识错误注意二十二点知识
·.NET 3.x新特性之自动属性及集合初始化
·ASP.NET中Multi-ListBox控件编程详解
·技巧实例:ASP.NET生成静态页面实现方法
·绝对精华:ASP.NET常用的三十三种实用代码
·动态创建内容时所用的W3C DOM属性和方法

自动下载完整的.NET源代码

日期:2008年1月23日 作者: 查看:[大字体 中字体 小字体]


从去年MS就开始喊着要开放.NET源代码,如今终于在一个含糊不清的授权协议下,通过Source Server的方式放了出来。虽然是如愿开源,但目前只提供几个核心模块,而且还限制必须在VS2008里面在线访问。
其实既然决定开放,何必搞那么多限制出来,让偶等用着不爽还得自己动手丰衣足食,写个程序直接模拟VS2008获取源码的行为,一次性全部拖回来备用。
空口无凭,上载一个 System.Xml 的源码包,和一个理论上能跑的程序原型,有兴趣的朋友可以试试。回头有时间了把相关代码整理一下再放出来,下面先大概说一下思路。

首先,VS2008虽然要打个补丁才能用源码调试,但这并不是下载源码的必要条件。MS发布源码所依赖的Source Server的机制,很早就通过 WinDbg 的发布包引入了。有兴趣的朋友可以使用 WinDbg 工具自己架设 Source Server,具体步骤请参考 %Debugging Tools for Windows%\sdk\srcsrv\ 目录下文档和脚本。
而这个 Source Server 说白就是从 .pdb 调试符号文件里面,获取被绑定的已索引文件列表,然后根据系统_NT_SOURCE_PATH环境变量指定的服务器,拼接出一个 URL 然后通过http下载。具体这块的配置,可以参考
Configuring Visual Studio to Debug .NET Framework Source Code
讨厌的是MS在dbghelp.dll里面做了一些手脚,直接通过url去下载调试符号和源码是不被允许的。刚好scz前面研究过symbol server的行为,基本确定ms服务端是根据user agent来进行判断的。也就是说在发起请求时,把当前http的user agent改成ms认可的方式,就能够模拟dbghelp.dll通过srcsrv.dll完成的工作,具体代码类似


public const string DefaultUserAgent = "Microsoft-Symbol-Server/9.9.9.9 (C; V; ;)";

public void Restart(Uri uri)
{
_request = (HttpWebRequest)WebRequest.Create(uri);
_request.UserAgent = DefaultUserAgent;

IAsyncResult result = (IAsyncResult)_request.BeginGetResponse(
new AsyncCallback(ResponseCallback), this);
ThreadPool.RegisterWaitForSingleObject(result.AsyncWaitHandle,
new WaitOrTimerCallback(TimeoutCallback), this, _timeout, true);
} 另外一个罗嗦的事情,是每个链接建立后,MS服务器会先返回一个罗嗦的license声明,srcsrv.dll会弹出一个对话框让你Accept才能继续下载。
例如你通过命令行去下载一个文件
wget --user-agent=Microsoft-Symbol-Server/9.9.9.9
Http://ReferenceSource.microsoft.com/source/.net/8.0/DEVDIV/
depot/DevDiv/releases/whidbey/REDBITS/ndp/fx/src/Misc/
InvariantComparer.cs/1/InvariantComparer.cs 会直接返回一对垃圾信息,类似
SYMSRVCOMMAND:
YESNODIALOG:
IDYES:Accept:Accept=0cf80f849aa7449e9d064ade971bd887
IDNO:Decline:Decline=0cf80f849aa7449e9d064ade971bd887
TITLE:End User License Agreement
BUTTONDESCRIPTION:Please read carefully and understand the license agreement above.
If you want to accept the license agreement, please click the “Accept” button.
TEXT:This license applies to the .NET Framework components that Microsoft makes available to you
in source code form. To print these terms, select the contents of this area and copy then paste
into an application that can print text.

MICROSOFT .NET FRAMEWORK REFERENCE LICENSE
.NET FRAMEWORK REFERENCE SOURCE CODE


This license governs use of the accompanying software. If you use the software, you accept this license.
If you do not accept the license, do not use the software.

[1] [2] 下一页 




上一篇:IE7.0浏览器有用的9个使用技巧

下一篇:Windows优化大师 大家都喜欢她

相关文章:
·QQ空间免费换皮肤代码
·qq空间皮肤背景代码:QQ空间不用Q币更换主页皮肤方法
·QQ空间最新黄钻皮肤代码
·熊猫烧香腾讯QQ表情包抢先下载
·电子书籍下载大放送
·dll文件下载
·杀毒技巧系列:杀毒、防恶意代码、脚本病毒的不完全合集
·黑鹰行动军刀部队-完整攻略 - 游戏攻略
·QQ空间透明flash代码
·Windows Vista Ultimate中文旗舰版下载+简单破解(支持迅雷HTTP & BT)
相关软件:
·万能声卡驱动下载适用于VIA芯片声卡
·有关毛泽东的一些问题解答(不完整版)
·海量免费毕业论文打包下载
·黑暗史诗-FATE绿色完整版
·GHOST全自动备份还原系统光盘V3.0
·细节决定成败(完整版)
·Dubbing 情歌教父(周传雄)1987-2003 新歌+经典专辑全部MP3下载!
·张信哲经典10部MV下载
·《反恐精英CS1.6》完整安装版本
·极品飞车9简体中文版 完整无删改

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot