[食譜好菜] 用 Visual Studio 2019 建置整個 ASP.NET Core 框架來下中斷點及追蹤程式碼

在這個時代做程式設計,通常不會自己造輪子,都是使用別人做好的工具居多,難免會出現鬼打牆的情況,倒不見得是工具本身有 Bug,大多是我們對於工具內部的運作機制不熟悉的關係,這時候有原始碼可以參考的話,就能方便我們去處理問題,如果還能建置起來進去工具內部追蹤程式碼,更能加快處理問題的速度,以避免鬼打牆的情況持續太久,這篇文章就來記錄一下如何用 Visual Studio 2019 建置整個 ASP.NET Core 框架?

Git Clone ASP.NET Core 的原始碼

ASP.NET Core 的原始碼在這裡,我們透過下面的 Git 指令就可以將它整個下載下來。

git clone --recursive https://github.com/dotnet/aspnetcore

在 master 分支上的 ASP.NET Core 版本是 preview 版,通常我們在工作上也不太會用 preview 版去做開發,所以我們要切換到目前使用的 Runtime 版本,假定我想要建置的目標版本是 3.1.8,我們就用 Git 工具切到 tag v3.1.8

切換之後,還要更新 submodule。

git submodule update --init --recursive

安裝必要元件

我們是使用 Visual Studio 2019 來做為建置的工具,在 ASP.NET Core 的原始碼上有一個 PowerShell 指令碼檔,它可以幫我們勾選必要安裝的元件,執行下面指令並指定我們 Visual Studio 2019 的版本,就能啟動安裝畫面。

./eng/scripts/InstallVisualStudio.ps1 -Edition Community

安裝其他開發工具

至少還有三個工具要安裝:

  1. Node.js:需要 10.14.2+ 的版本,https://nodejs.org/en/download/
  2. JDK:需要 11+ 的版本,我們這邊選擇的是 OpenJDK 14.0.2.12-1,https://github.com/ojdkbuild/ojdkbuild
  3. Yarn:在 Node.js 安裝完之後,執行指令 npm install -g yarn 就可以將 Yarn 將起來。

Restore & Build

到這邊我們先別急著把 ASP.NET Core 的專案打開,還有一些前置動作要做,首先執行下面指令還原並建置整個儲存庫一次。

.\restore.cmd

由於整個 ASP.NET Core 有多個方案(Mvc、SignalR、Identity、...etc),我們接下來要選定我們要建置的方案,那我選的是 Mvc,我們就執行下面的指令先把 Mvc 方案建置一次。

.\src\Mvc\build.cmd

建置完後執行下面指令,就會將 Mvc 方案用 Visual Studio 2019 打開。

.\src\Mvc\startvs.cmd

在 Mvc 方案裡面有一個 MVC 的 Sample 專案 - MvcSandbox,將它設成起始專案並建置。

就我選定的 3.1.8 版本,建置結果會有一個錯誤。

錯誤 CS0006 找不到中繼資料檔 'XXX\aspnetcore\src\Components\Forms\src\bin\Debug\netstandard2.0\
Microsoft.AspNetCore.Components.Forms.dll'

其實它只是缺少相依的專案而已,根據報錯的路徑,我們在 _dependencies 資料夾中把相依的專案加進來就行了。

最後再建置一次,沒意外的話應該就會成功了,我們就得到可以 Debugging 的 ASP.NET Core 框架。

參考資料

C# 指南 ASP.NET 教學 ASP.NET MVC 指引
Azure SQL Database 教學 SQL Server 教學 Xamarin.Forms 教學