雖然編譯源碼折騰了幾個時間(卡在restore),最後還是跑起來了aspnetcore6.0mvc源碼項目,下麵說步驟,前提是網路能連外,對於不能連外的懶得折騰。 第一步 電腦找個地克隆下GitHub上的源碼下來 git clone --recursive https://github.com/do ...
雖然編譯源碼折騰了幾個時間(卡在restore),最後還是跑起來了aspnetcore6.0mvc源碼項目,下麵說步驟,前提是網路能連外,對於不能連外的懶得折騰。
第一步
電腦找個地克隆下GitHub上的源碼下來
git clone --recursive
https://github.com/dotnet/aspnetcore.git
註意一定要帶上 recursive,一次性把依賴給下載下來。
第二步
git tag 查看版本(註意該命令需要進入到下載的代碼文件夾aspnetcore里執行),一直回車直到顯示所有版本,選擇自己想要的版本號,記下來,輸入!退出。我選擇NET6最新v6.0.9版本
第三步 執行 git checkout v6.0.9拉取該版本。
第四步 找到該文件 aspnetcore\eng\scripts\InstallVisualStudio.ps1 目錄下執行 .\InstallVisualStudio.ps1 -edition enterprise 預設下載vs2019的企業版本以及需要的以來組件,當然你可以修改這個文件下載最新的vs2022。該命令在powershell下麵執行嗎,如果有失敗提示註意是不是powershell禁用了腳本執行。自行百度開啟即可(管理員下執行 Set-ExecutionPolicy RemoteSigned)
接下來就是彈出安裝vs了。(我安裝完vs2019後直接卸載掉了,我本地是vs2022就沒用下載下來的vs2019)
第五步 powershell下執行 .\restore ,腳本在 aspnetcore下,文件就是restore.cmd。
最關鍵最耗時的一步。沒有FQ或者網路不佳會卡死在這裡。這裡主要是下載aspnetcore\.dotnet這個文件夾,我這裡編譯完大小910m,占用920m。如果小於這個數或者卡在這裡很遺憾是過不去了(用powershell和cmd都可以,ps的話需要加.\)
restore碰運氣,如果紅色錯誤多的話需要細看再細看,我遇到兩個大的錯誤,一個是提示node的版本太老,就是我電腦版本是多少, 實際要求的版本是多少,我直接卸載重裝了最新的node。該錯誤忘了截圖
看看這個報錯,無非就是一堆vcxproj結尾的文件里導入 props的文件不存在。首選發現全是aspnetcore\src\Servers\IIS\AspNetCoreModuleV2這個文件夾下麵的錯誤。
打開其中一個文件看一下,按照VCTargetpath關鍵字每個文件都有三個地方,粗暴的註釋掉。這個模塊是iis的載入core模塊,是c++寫的,對運行起來調試代碼基本無影響,我的項目現在都不用iis了。
還需註意一個地方就是該文件夾AspNetCoreModuleV2下麵的所有test也要改,我看這是測試文件夾,粗暴的刪除掉了,不會影響項目運行。
haixu
restore需要幾分鐘時間的,最後就是這樣的了(有錯誤不要緊,先自己看看能不能判斷問題所在,不行就百度一下去查一查。)
第六步 測試mvc源碼 ,通過腳本打開mvc解決方案,startvs Mvc.sln,後續就是編譯代碼調試代碼了。
編譯的時候發現這裡有報錯,懶得深究,調試有需要再解決了。再看註釋很明顯說不沒有足夠數據,crlf不能正確的到這裡,就是不執行吧,那就粗暴的註釋一下下了。
結束!
hosting模塊調試,一樣執行cmd命令 startvs.cmd打開vs2022
mvc模塊調試