asp.net core 编译mvc,routing,security源代码进行本地调试

因为各种原因,需要查看asp.net core mvc的源代码来理解运行机制等等,虽说源代码查看已经能很好的理解了。但是能够直接调试还是最直观的。所有就有了本次尝试。
因调试设置源代码调试太辍笔,所以不用这个方法,转而使用编译源代码的方式,当然也能在源代码里面加点log能更好的理解和调试

源代码准备及调试程序准备

1.从https://github.com/aspnet上clone下来mvc及相关项目的源代码,准备稍后的编译。
2.新建一个asp.net core mvc 项目,写上一些基本代码。这个就随意了了,本次尝试使用的是我自己的一个项目代码,就不贴图了。

源代码的编译

当前所编译的3个工程:mvc,routing,security。全家福。
161654-20170415005350111-1391945080.png
编译之前,一定要根据调试项目所引用的package版本来。我项目引用的mvc版本是1.1.2,routing和security版本是1.1.1 所有git把分支checkout到对应版本上进行编译
161654-20170415005709470-1780068067.png

security项目的编译
161654-20170415014245345-402250392.png
161654-20170415014249955-425106133.png

编译之后的packages包
161654-20170415014306001-584571863.png

本地nuget服务器准备

本地nuget服务器准备就比较简单了,网上一搜一大包,新建一个web 空工程,nuget引用nuget.server 包。然后发布到iis就完事了。
161654-20170415005945033-160012728.png
161654-20170415013909189-942512436.png

本地nuget包发布

如图上问题所示,该删除的删除就好了
161654-20170415014156095-630703659.png

调试项目引用本地nuget服务的包

161654-20170415014420173-975656423.png

成果展示

当前的断点在Microsoft.AspNetCore.Authorization.DefaultAuthorizationService.DefaultAuthorizationService
调用堆栈上能很明显的看出来 mvc,routing等也可以源码调试了。
161654-20170415014453861-1975865386.png