雖然編譯原始碼折騰了幾個時間(卡在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模塊除錯

轉載請註明出處,本文鏈接:https://www.uj5u.com/net/509389.html
標籤:.NET Core
上一篇:.NET 反向代理 YARP 通過編碼方式配置域名轉發
下一篇:在 WPF 中實作融合效果
