注:每個源碼的版本編譯方式有差異,我這邊編譯的是 .NET6 也就是 v6.0.0
首先准備一個干凈的虛擬機(我給了80G的硬盤空間,少了可能不夠),裝windows 10,版本>=1803
以管理員運行powershell PS> set-ExecutionPolicy RemoteSigned,選擇'Y'
裝vs2022(勾選 [ASP.NET和Web開發],[.NET桌面開發],[使用C++的桌面開發] ,(單個組件需要勾選 Windows 10 SDK(10.0.18362.0)))
裝git
裝Node.js
裝JDK(可以后面通過命令裝),
!先裝這些工具是因為后面可能會失敗, 先裝好后備份鏡像,方便后面直接還原鏡像(如果你信心十足可以不備份鏡像)
!后面過程最好全程掛着代理跑
1.下載源碼: (必須clone ,下載zip的不行)
$ git clone --recursive https://github.com/aspnet/AspNetCore
2,更改根目錄.git文件夾下 config文件里的 三個 submodule 的url
不然后面檢出子模塊時 git submodule update --init --recursive 不能成功(掛代理都不一定成功),
我這邊全部改成了 gitee 的地址 ,是這么改的
[submodule "src/submodules/MessagePack-CSharp"]
url = https://gitee.com/mirrors/MessagePack-CSharp.git
[submodule "src/submodules/googletest"]
url = https://gitee.com/heyuanquan/googletest.git
[submodule "src/submodules/spa-templates"]
url = https://gitee.com/mirrors_dotnet/spa-templates.git
3,檢出指定子模塊 (我編譯時指定 v6.0.0)
git checkout v6.0.0
git submodule update --init --recursive
必須保證三個url的執行全部成功,否則后面編譯不過
裝JDK
PS> ./eng/scripts/InstallJdk.ps1
4,還原依賴,
PS> .\restore.cmd
耗時很久,耐心等待,祝你不失敗,失敗了就重試下,失敗的原因要么是網絡問題要么是前面東西沒裝好
下圖處不能出現警告,錯誤
5,編譯
同樣耗時很久,耐心等待,祝你不失敗,失敗的大概率原因是前面東西沒裝好,我這邊編譯到最后signalr的包報了幾個錯,懶得管了,不影響后面debug代碼
PS> eng\build.cmd
6,運行,源碼最終生成在 src 目錄下
源碼中根據不同的組件包含多個解決方案,sln是不可以直接打開的,正確的方式是運行目錄 里的startvs.cmd 它會設置必要的環境變量,並自動使用Visual Studio打開.sln文件。
以MVC項目為例,打開/src/Mvc/startvs.cmd。
生成一下samples/MvcSandbox,並設為啟動項目, 運行項目 選擇 MvcSandbox 不要選擇 IIS Express
如果全部生成成功,能正常運行,就可以運行了。運行成功界面如下
如果上述幾個過程出了錯誤,自行google吧,百度可能沒有
以下是分享的VM虛擬機導出的VOF文件(大約25G),不想折騰可以直接下載,解壓后導入的虛擬機即可
https://115.com/s/swnt1cb3wxd?password=z085&#