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