在容器中偵錯 .NET
先決條件
-
安裝 .NET SDK,其中包含連接 .NET 偵錯工具的支援。使用 .NET SDK 7 或更新版本,您可以選擇在沒有 Dockerfile 的情況下進行偵錯。
-
安裝 Visual Studio Code C# 擴充功能,其中包含使用 VS Code 連接 .NET 偵錯工具的支援。
-
僅限 macOS 使用者:將
/usr/local/share/dotnet/sdk/NuGetFallbackFolder
新增為 Docker 偏好設定中的共用資料夾。
逐步解說
- 如果需要,使用
dotnet new
建立 .NET 專案。 - 在 VS Code 中開啟專案資料夾。
- (選擇性) 設定中斷點。
.NET SDK 與 Dockerfile 建置
有兩種方法可以在容器內建置和偵錯您的應用程式:使用 Dockerfile,或對於 .NET 7 及更新版本,不使用 Dockerfile。
.NET SDK 容器建置 (不使用 Dockerfile
進行偵錯)
此選項支援 Web 專案,且在 Docker 設定為使用 Linux 容器時可用。
- 按下 F5 或從 [執行] 功能表選擇 [開始偵錯]。(如果您在
launch.json
中有任何現有的啟動設定檔,您可以使用 ⌘/ (Windows、Linux Ctrl+/) 將它們註解掉) - 系統會提示您顯示偵錯工具清單。選擇 [Docker: 在容器中偵錯]
- 當系統提示您選擇使用
Dockerfile
建置 ([使用 Dockerfile]) 或使用 .NET SDK 建置 ([使用 .NET SDK]) 的選項時,請選取 [使用 .NET SDK]。 - 如果您的工作區中有多個專案檔案,請選擇與您要偵錯的專案相關聯的專案檔案。如果建置成功,您的 .NET 應用程式會在 Docker 容器中執行,且 Web 應用程式會在您的瀏覽器中開啟。
注意:支援的 .NET SDK 版本:預設情況下,此功能適用於 .NET SDK 7.0.300 及更高版本。對於 7.0.100 到 7.0.300 之間的版本,請使用
dotnet add package Microsoft.NET.Build.Containers
啟用它。您可以在 Microsoft Learn 上閱讀有關 .NET SDK 容器建置的詳細資訊。
使用 Dockerfile
偵錯
-
等待直到出現通知,詢問您是否要新增偵錯所需的資產。選取 [是]
-
開啟命令面板 (⇧⌘P (Windows、Linux Ctrl+Shift+P)) 並輸入 [Docker: 將 Docker 檔案新增至工作區...]。如果您已經 Docker 化您的應用程式,您可以改為執行 [Docker: 初始化 Docker 偵錯]。依照提示操作。
-
切換到 [執行與偵錯] 檢視 (⇧⌘D (Windows、Linux Ctrl+Shift+D))。
-
選取 [Docker .NET Core Launch] 啟動組態。
-
開始偵錯!(F5)
使用 SSL 支援執行與偵錯
若要啟用 SSL (使用 HTTPS 通訊協定),您需要對組態進行一些變更。
-
在 Dockerfile 中,將
EXPOSE
行新增至基礎區段,以定義 HTTPS/SSL 的個別連接埠。保留另一個EXPOSE
行,並為 HTTP 請求使用不同的連接埠。FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base WORKDIR /app EXPOSE 5000 EXPOSE 5001
-
在
.vscode/tasks.json
檔案中,將configureSsl: true
新增至netCore
區段。此外,在docker-run: debug
工作的dockerRun
區段中,新增環境變數ASPNETCORE_URLS
,並使用您在 Dockerfile 中定義的相同連接埠號碼dockerRun: { "env": { "ASPNETCORE_URLS": "https://+:5001;http://+:5000" } } netCore: { "appProject": "${workspacefolder}/MyProject.csproj", "enableDebugging": true, "configureSsl": true }
如需其他自訂選項,請參閱關於 工作 和 偵錯容器化應用程式 的文件。
儲存 .NET SDK 容器建置的專案檔案偏好設定
如果您的工作區資料夾有多個 .NET 專案檔案,且您想要專門偵錯某個特定專案 (而不需要在每次按下 F5 時都從專案檔案清單中選擇),您可以依照下列步驟儲存您的啟動設定檔
-
依照 .NET SDK 容器建置 中的步驟操作,並保持偵錯工作階段處於作用中狀態。
-
按一下偵錯工具檢視中的齒輪圖示。
-
選取 [Docker: 在容器中偵錯]
-
選擇與您要偵錯的專案相關聯的專案檔案
您的專案偏好設定已儲存,您不再需要在 F5 上選擇專案檔案