Core源代码的三种方法

本文转自:http://www.cnblogs.com/maxzhang1985/p/6015719.html

一、前言

   .NET开源时间还相当长,因为平昔在做YOYOFx的涉嫌,所似小编屡屡有更加尖锐的明白.NET
Core和ASP.NET Core内容的供给,並且.NET
Core平台与从前版本的扭转太大,那也导致自个儿平常要去查看源代码中,来通晓ASP.NET
Core和.NET Core代码完结。

  的确,.NET
Core和ASP.NET
Core的源代码,今后早已在Github上海展览中心开了代码托管;但随意是在Github上在线阅读或是将源代码Clone到本地阅读,都比较有局限性,作者最想要的要么能经过调节和测验的秘诀,单步的对程序进行DEBUG调节和测量检验断点到源代码中。

  笔者写那篇文章的目地也是描述一下,怎样调节和测量试验.NET
Core源代码的步骤,笔者计算了二种对.NET Core源代码的办法。

在Visual Studio 2017中得以经过标识以及源链接,特别有益对 ASP.NET Core
2.0中源代码举办调治将养。在那篇文章中,大家将重大介绍怎么着使用源链接对ASP.NET
Core源举行调节和测量试验。

开卷目录

二、符号服务器

  以前微软给我们调节和测验.NET程序的章程,平常是在Visual
Studio参加符号服务器,来调节和测量试验.NET托管程序。大家此次运用同一的艺术,来实现这一个调节和测验源代码的职责。

  首先.NET
Core的标记服务器地址:https://dotnet.myget.org/F/dotnet-core/symbols/ ,关于这几个符号服务器地址是怎么找到的,照旧去MyGet上去多溜溜,发掘分明会十分的多。

  大家此番运用Visual
Studio 2014 Update3,来形成以下操作:

什么样是源链接?

和本人同样,您恐怕已经注意到在编写翻译代码时,会成立的PDB文件。那些文件保留了符号音讯,这么些音信能够选拔用于协助对外界源代码的调弄整理。有个别类别的标识文件可能带有部分源代码或源代码的炫目。

不长一段时间在此之前,Microsoft已经托管了标识服务器,它们保存Microsoft产品(如.NET
Framework和ASP.NET Core)已宣布的符号文件。Visual
Studio帮助动态下载符号。为此,您必须禁止使用“调节和测量试验” ->
“常规”选项中的“启用仅作者的代码”选项。暗许意况下,此选项在Visual
Studio中是启用的。

图片 1

至于符号、符号服务器等的越来越多消息,请参阅此MSDN链接.aspx)。

源链接允许你在符号文件中放到被调用方法的名目和岗位清单,它能够识别包括代码的公文以及能够从什么地方寻觅文件。ASP.NET
Core(不是.NET Core)未来帮忙源链接,并提供到GitHub上托管代码的链接。

  1.装置符号服务器

  在VS二零一六的Tools
-> Options -> Debugging
->Symbols中,增加符号服务器地址:https://dotnet.myget.org/F/dotnet-core/symbols/ ,然后最好清一下标识文件的缓存。

启用和利用源链接

率先的供给是将Visual Studio
2017立异到新型的本子(15.3),该更新扩大了源链接的支撑。假如设置此项,在“调节和测验”
-> “常规”选项中,您将看到“启用源链接支持”。

图片 2

除此之外确认保障“启用仅本人的代码”禁止使用外,您还非得启用Microsoft符号服务器,在“调节和测验”
-> “符号”选项中,能够从符号文件地点列表中启用“Microsoft符号服务器”。

图片 3

启用符号服务器时,您须要经受调养时大概引进的品质影响。

图片 4

安装实现后,策动调节和测验ASP.NET Core源代码。为了测量检验那个,作者在Visual
Studio中开创了一个暗中同意的ASP.NET Core 2.0
MVC项目。然后笔者在HomeController上为Index主意增添了三个断点。然后起始调节和测量检验应用程序。第一回调节和测量检验时,您大概会看出那样的音讯。

图片 5

那是正值下载的标识文件,恐怕必要一段时间技能不负任务。

借使应用程序运维到您代码断点处,您就能够导航到调用货仓,以观察正在实施的保有外界ASP.NET代码。

图片 6

一经您双击任何那些调用,编辑器将采取标识来规定该代码所在的框架地点。使用标识文件中的链接,Visual
Studio将从GitHub下载源文件。当源链接须求下载源代码时,您拜见到如下警告对话框:

图片 7

您能够采取第一项“下载源并一连调节和测验”选项,并连任行使该公文进行调养。您可以选拔第贰个采用,将下载该公文,并禁止使用后一次文件下载的警戒。

下载完源文件后,它将呈现在您选拔酒馆对应的岗位。

图片 8

您还足以在该公文中的别的地点增加自个儿的断点,然后在调治应用程序时将其设置为命中。固然大家甘休调试并再一次起动,那就像如故是可行的。

图片 9

回到目录

  2.安装VS二零一六支撑调节和测验进框架源代码

  Tools
-> Options -> Debugging ->Symbols -> General中,勾选Enable
.NET Framework source stepping和Enable source server support
两个采取。

  今后就足以拓展单步调节和测量试验进.NET
Core的源代码中了,只是第三次DEBUG加载的时候,会十二分的慢,符号服务器在海外嘛,真的是非常的慢,何况不会一遍性全体下载并加载进来,恐怕在调节和测量试验到有些断点时,还要开始展览标识文件的下载,可是这种办法,也可以有好的另一方面,举例存有代码都能收看源代和调治了包蕴.NET
Core的Fx。

总结

Very nice ,在ASP.NET
Core中调养外界源码极其轻便。通过那些成效能够获得越来越多的价值,让大家得以调节和测验ASP.NET
Core源代码,精通其福建中华南理经济大学程公司作办法。

参谋资料:

作者:Sweet Tang
正文地址:http://www.cnblogs.com/tdfblog/p/debugging-asp-net-core-2-source.html
款待转发,请在引人注目位置给出出处及链接。

一、前言

   .NET开源时间还十分长,因为一贯在做YOYOFx的关系,所似我反复有越来越尖锐的理解.NET
Core和ASP.NET Core内容的急需,并且.NET
Core平台与事先版本的变型太大,那也导致自家时常要去查看源代码中,来打探ASP.NET
Core和.NET Core代码实现。

  的确,.NET
Core和ASP.NET
Core的源代码,未来早已在Github上海展览中心开了代码托管;但随意是在Github上在线阅读或是将源代码Clone到当地阅读,都相比有局限性,笔者最想要的要么能由此调节和测验的措施,单步的对程序进行DEBUG调节和测量试验断点到源代码中。

  笔者写那篇小说的目地也是描述一下,如何调节和测验.NET
Core源代码的步子,笔者总括了三种对.NET Core源代码的点子。

归来目录

三、项目中增加ASP.NET Core源代码

  第三种格局,是因而将源代码加入到品种中以完成代码调节和测量检验的技艺。此次以ASP.NET
Core的源代码为例,同学们方可融会贯通,本次使用的情况为.NET Core
1.0.1,当然ASP.NET Core MVC项目标本子也要与之对应。

二、符号服务器

  在此以前微软给大家调节和测量检验.NET程序的方法,平常是在Visual
Studio参加符号服务器,来调节和测量试验.NET托管程序。大家此次运用同样的法子,来成功这几个调节和测量检验源代码的天职。

  首先.NET
Core的标识服务器地址:https://dotnet.myget.org/F/dotnet-core/symbols/ ,关于这么些符号服务器地址是怎么找到的,依旧去MyGet上去多溜溜,开采确定会十分的多。

  大家此次使用Visual
Studio 二〇一五 Update3,来完毕以下操作:

  1.Clone源代码

  我们先Clone一份ASPNETCore.MVC的源代码到本地,因为大家本次运用的本子是1.0.1就此Clone后翻看下满含的版本音讯。

D:\Projects\AspNet\Mvc [master ≡]> git tag
1.0.0
1.0.0-rc2
1.0.1
6.0.0-alpha2
6.0.0-alpha3
6.0.0-alpha4
6.0.0-beta1
6.0.0-beta2
6.0.0-beta3
6.0.0-beta4
6.0.0-beta5
6.0.0-beta6
6.0.0-beta7
6.0.0-beta8
6.0.0-rc1
rel/1.0.1
D:\Projects\AspNet\Mvc [master ≡]>

  大家需求的本子为rel/1.0.1,要是Clone的版本不正确也得以git
checkout 1.0.1下。

  1.安装符号服务器

  在VS贰零壹伍的Tools
-> Options -> Debugging
->Symbols中,增添符号服务器地址:https://dotnet.myget.org/F/dotnet-core/symbols/ ,然后最佳清一下符号文件的缓存。

  2.修改global.json

  接下去,大家要修改项目根目录中的global.json文件:

{
  "projects": [ "src", "test", "D:\\Projects\\AspNet\\Mvc\\src" ],
  "sdk": {
    "version": "1.0.0-preview2-003131"
  }
}

  在文书参预Clone下来的ASPNETCore源代码的路子。当然这里要留心,VS二〇一六里成立项目模板恐怕会有版本难点,SDK使用的是1.0.0-preview2-003131版本,还会有project.json里的顺序集版本也要与源代码提供的本子保持一致!完结这么些手续后我们静观其变一会,整个项目便是重复来还原包新闻和编写翻译。

  当然还是会晤世界形势部小标题,举例项目编写翻译时会找不到AspNetCore项目编写翻译出来的DLL文件,那是因为要是Clone下来的源代码与你的品种不在三个索引下的话,会招致找不到编写翻译出来的程序集,消除措施也很简短,修改下编写翻译参数,小编的做法是修改.xproj的点子。

  将下载的ASP.NET
Core的源代码中的项目文件 *.xproj 依次张开找到如下行:

 

<OutputPath Condition="'$(OutputPath)'=='' ">..\..\artifacts\bin\</OutputPath>

 

  将其修改为:

<OutputPath Condition="'$(OutputPath)'=='' ">.\bin\</OutputPath>

  2.装置VS2016援助调节和测验进框架源代码

  Tools
-> Options -> Debugging ->Symbols -> General中,勾选Enable
.NET Framework source stepping和Enable source server support
八个选项。

  未来就能够进行单步调节和测量检验进.NET
Core的源代码中了,只是第贰遍DEBUG加载的时候,会这么些的慢,符号服务器在国外嘛,真的是不快,并且不会三次性全体下载并加载进来,可能在调度到一点断点时,还要开始展览标识文件的下载,然则这种措施,也可以有好的单向,比如存有代码都能来看源代和调和了包涵.NET
Core的Fx。

回来目录

四、写在最终

好了通过上述的步调,现在再编写翻译就足以经过了,接下去,下断点吧。
以上的三种情势都能够触类旁通,找到符号文件或编译源代码参与项目目录,都得以编写翻译调节和测验任何.NET
Core开源代码。

 

 

GitHub:https://github.com/maxzhang1985/YOYOFx 
若是觉还是能够请Star下, 接待一同调换。

 

 

.NET Core
和 YOYOFx
的调换群: 214741894  

 

 

就算你以为本文对您有扶持,请点击“推荐;)”,谢谢.

 

 

 

  

 

  

三、项目中增加ASP.NET Core源代码

  第三种办法,是透过将源代码参与到品种中以实现代码调试的力量。这一次以ASP.NET
Core的源代码为例,同学们能够抛砖引玉,此番使用的景况为.NET Core
1.0.1,当然ASP.NET Core MVC项目标本子也要与之相应。

  1.Clone源代码

  大家先Clone一份ASPNETCore.MVC的源代码到地点,因为大家此次使用的本子是1.0.1由此Clone后翻看下包涵的版本新闻。

图片 10😉

  1. D:\Projects\AspNet\Mvc [master ≡]> git
    tag
  2. 1.0.0
  3. 1.0.0-rc2
  4. 1.0.1
  5. 6.0.0-alpha2
  6. 6.0.0-alpha3
  7. 6.0.0-alpha4
  8. 6.0.0-beta1
  9. 6.0.0-beta2
  10. 6.0.0-beta3
  11. 6.0.0-beta4
  12. 6.0.0-beta5
  13. 6.0.0-beta6
  14. 6.0.0-beta7
  15. 6.0.0-beta8
  16. 6.0.0-rc1
  17. rel/1.0.1
  18. D:\Projects\AspNet\Mvc [master ≡]>

图片 11😉

  大家须要的本子为rel/1.0.1,假诺Clone的本子不科学也能够git
checkout 1.0.1下。

  2.修改global.json

  接下去,大家要修改项目根目录中的global.json文件:

图片 12😉

  1. {
  2. “projects”: [ “src”, “test”, “D:\\Projects\\AspNet\\Mvc\\src” ],
  3. “sdk”: {
  4. “version”: “1.0.0-preview2-003131”
  5. }
  6. }

图片 13😉

  在文件参预Clone下来的ASPNETCore源代码的路线。当然这里要小心,VS2016里创设项目模板也许会有版本难题,SDK使用的是1.0.0-preview2-003131本子,还会有project.json里的次序集版本也要与源代码提供的版本保持一致!完结那些手续后大家拭目以俟一会,整个项目正是重新来还原包音讯和编写翻译。

  当然照旧会油可是生有的未有失常态,比方项目编写翻译时会找不到AspNetCore项目编写翻译出来的DLL文件,那是因为只要Clone下来的源代码与您的品种不在一个目录下的话,会导致找不到编写翻译出来的程序集,化解办法也很简短,修改下编写翻译参数,小编的做法是修改.xproj的点子。

  将下载的ASP.NET
Core的源代码中的项目文件 *.xproj 依次展开找到如下行:

 

  1. <OutputPath Condition=”‘$(OutputPath)’==” “>..\..\artifacts\bin\</OutputPath>

 

  将其修改为:

  1. <OutputPath Condition=”‘$(OutputPath)’==” “>.\bin\</OutputPath>

回到目录

四、写在最终

好了通过以上的步子,今后再编写翻译就能够由此了,接下去,下断点吧。
以上的二种方法都足以贯通融会,找到符号文件或编写翻译源代码参加项目目录,都能够编写翻译调节和测量试验任何.NET
Core开源代码。

 

 

GitHub:https://github.com/maxzhang1985/YOYOFx 
如若觉还足以请Star下, 款待一齐交换。

 

 

.NET Core
和 YOYOFx
的沟通群: 214741894  

 

相关文章