因為各種原因,需要檢視asp.net core mvc的源代碼來了解運作機制等等,雖說源代碼檢視已經能很好的了解了。但是能夠直接調試還是最直覺的。所有就有了本次嘗試。
因調試設定源代碼調試太辍筆,是以不用這個方法,轉而使用編譯源代碼的方式,當然也能在源代碼裡面加點log能更好的了解和調試
源代碼準備及調試程式準備
1.從https://github.com/aspnet上clone下來mvc及相關項目的源代碼,準備稍後的編譯。
2.建立一個asp.net core mvc 項目,寫上一些基本代碼。這個就随意了了,本次嘗試使用的是我自己的一個項目代碼,就不貼圖了。
源代碼的編譯
目前所編譯的3個工程:mvc,routing,security。全家福。

編譯之前,一定要根據調試項目所引用的package版本來。我項目引用的mvc版本是1.1.2,routing和security版本是1.1.1 所有git把分支checkout到對應版本上進行編譯
security項目的編譯
編譯之後的packages包
本地nuget伺服器準備
本地nuget伺服器準備就比較簡單了,網上一搜一大包,建立一個web 空工程,nuget引用nuget.server 包。然後釋出到iis就完事了。
本地nuget包釋出
如圖上問題所示,該删除的删除就好了
調試項目引用本地nuget服務的包
成果展示
目前的斷點在Microsoft.AspNetCore.Authorization.DefaultAuthorizationService.DefaultAuthorizationService
調用堆棧上能很明顯的看出來 mvc,routing等也可以源碼調試了。