編譯除錯Net6原始碼

馬永猛 發表於 2022-07-01

前言

編輯除錯DotNet原始碼可按照官網教程操作,但因為網路問題中間會出現各種下載失敗的問題,這裡出個簡單的教程(以6為版本)
編譯除錯Net6原始碼

下載原始碼

下載原始碼 GitHub下載原始碼速度極慢,可替換為國內倉庫https://github.com.cnpmjs.org/或https://git.sdut.me/
編譯除錯Net6原始碼
編譯除錯Net6原始碼

下載原始碼
git clone --recursive https://github.com/dotnet/aspnetcore
下載子模組(這塊有可能會很卡最好修改一下)
git submodule update --init --recursive

下載完成後,記得把地址在改回去,因為首次下載大,以後下載就小了

git tag 檢視版本
git checkout V6.0.3(需要的版本)

修改nuget配置刪除部分int包
編譯除錯Net6原始碼

配置環境

設定Visual Studio

編譯除錯Net6原始碼
版本不同,要求不同,根據不同的版本設定環境

  • 1 - 指令碼設定
    根據自己Visual Studio的版本設定 預設為 Enterprise Preview
  ./eng/scripts/InstallVisualStudio.ps1 -Edition Professional -Channel Release
  ./eng/scripts/InstallVisualStudio.ps1 [-Edition {Enterprise|Community|Professional}] [-Channel {Release|Preview}]
  • 2 - 手動設定
    根據json檔案查詢配置,根據配置表(這裡以2022為準,根據vs版本配置)查詢具體需要配置的項
    編譯除錯Net6原始碼
    編譯除錯Net6原始碼

下載安裝NodeJS

根據版本要求下載安裝相對應的NodeJS https://nodejs.org.

下載安裝Yarn

npm install -g yarn

下載java jdk

這裡不使用指令碼下載了,使用官網地址下載
下載完成後,點下一步下一步安裝這裡就不詳細說了,下載完成後再環境變數中新增JAVA_HOME變數
編譯除錯Net6原始碼

修改原始碼配置

編譯除錯Net6原始碼
把安裝目錄下的vswhere檔案放到原始碼tool中,沒有資料夾建立資料夾註意版本號,因檔案大使用指令碼下載過慢,故提前準備
編譯除錯Net6原始碼

原始碼還原

.\restore.cmd
原始碼還原過程中可能會卡一會,不要動,過個一段時間(時間有可能會很長,等等……)會出現下載失敗等資訊。
使用IIS建立應用程式
編譯除錯Net6原始碼
修改配置檔案地址,改為我們建立的本機地址
編譯除錯Net6原始碼
下一步再次使用命令執行restore
需要啥檔案就去微軟官網下載,下載完成後放到自己建立的應用程式中,再次執行restore直到不出現錯誤

原始碼編譯

最後一步了,可以使用指令碼(eng\build.cmd)生成,也可以開啟Visual Studio編譯生成