.NET源碼編譯過程


注:每個源碼的版本編譯方式有差異,我這邊編譯的是 .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&#

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM