研究Abp(ASP.NET Boilerplate)框架有幾個月了,從一遍遍的看官方文檔,到如今看源碼,一路走來學習了不少知識。 不少新手都很關心源碼如何調試,我也是如此,在反覆看Debugging文檔後仍是沒法調試!通過反覆研究學習,終於能夠調試了,先看一下下面截圖效果,下面我來按步驟來介紹如何調試abp源碼:git
官網上文檔介紹abp是支持SourceLink,可是按照官網配置是沒法調試的,但願做者在下個版本中修復。github
程序數據庫(.pdb)文件也叫Symbol file(符號文件)也能夠用來調試,但不幸的是做者abp v2.1.3(包含) 以前發佈的nuget 包中並未包含.pdb文件,能夠查看Issuses #2133, v2.1.3版本以後做者應該會修復這個問題。shell
首先說明準備工做,我所用的abp源碼是v2.1.3,能夠從github上獲取,我使用的項目是官網提供的Event Cloud例子,也能夠從github上獲取,須要注意二者的abp版本號一致。數據庫
打開Debug -- Options框架
取消"Enable Just My Code",勾選"Enable source server support"和「Enbale source link support」,實際不須要勾選這麼多,暫且先勾上吧。學習
點擊Symbols選項,點擊「Sepcify modules」,增長abp*.dll模塊,這樣明確指定模塊能夠增長加載速度。測試
個人abp v2.1.3的源碼路徑爲"D:\aspnetboilerplate",在cmd命令中執行powershell.exe -file "D:\aspnetboilerplate\nupkg\pack.ps1",就會編譯好全部dll, 例如:調試
我在另外一臺機器上執行上面cmd命令會報錯,以下截圖,我也沒搞清楚爲何,由於我根本不知道pack.ps1到底有啥用,哈哈,有大神能夠指導下嗎?因此我換了一種方式,直接打開abp工程,把模式調成Release,直接整個解決方案編譯。server
從上一步編譯後生成的目錄中替換文件到咱們項目(Event Cloud)對應的目錄中,例如:"D:\aspnetboilerplate\src\Abp\bin\Release\net46\Abp.pdb"到「D:\Projects\ABP\eventcloud-master\src\packages\Abp.2.1.3\lib\net46」;xml
"D:\aspnetboilerplate\src\Abp.Web.Api\bin\Release\net46\Abp.Web.Api.pdb"到「D:\Projects\ABP\eventcloud-master\src\packages\Abp.Web.Api.2.1.3\lib\net46」
須要調試什麼源碼拷貝對應的一套文件(dll,pdb,xml)到項目的對應packages中.
點擊調試,查看Output窗口查看咱們關心的abp*.dll的Symbol是否是加載成功了人,若是加載成功,咱們就能夠F11調試abp源碼了。有小夥伴說須要經過File -- Open -- File... 打開abp中對應源碼文件加斷點來調試,我測試下來,不打開也能夠直接調試了.
abp的後續版本應該能夠直接調試了,此博客只爲abp老版本提供一個workround.