🚀 在 VS Code 中免費取得

在容器中偵錯 .NET

先決條件

  1. 安裝 .NET SDK,其中包含連接 .NET 偵錯工具的支援。使用 .NET SDK 7 或更新版本,您可以選擇在沒有 Dockerfile 的情況下進行偵錯。

  2. 安裝 Visual Studio Code C# 擴充功能,其中包含使用 VS Code 連接 .NET 偵錯工具的支援。

  3. 僅限 macOS 使用者:將 /usr/local/share/dotnet/sdk/NuGetFallbackFolder 新增為 Docker 偏好設定中的共用資料夾。

    dockerSharedFolders

逐步解說

  • 如果需要,使用 dotnet new 建立 .NET 專案。
  • 在 VS Code 中開啟專案資料夾。
  • (選擇性) 設定中斷點。

.NET SDK 與 Dockerfile 建置

有兩種方法可以在容器內建置和偵錯您的應用程式:使用 Dockerfile,或對於 .NET 7 及更新版本,不使用 Dockerfile。

.NET SDK 容器建置 (不使用 Dockerfile 進行偵錯)

此選項支援 Web 專案,且在 Docker 設定為使用 Linux 容器時可用。

  1. 按下 F5 或從 [執行] 功能表選擇 [開始偵錯]。(如果您在 launch.json 中有任何現有的啟動設定檔,您可以使用 ⌘/ (Windows、Linux Ctrl+/) 將它們註解掉)
  2. 系統會提示您顯示偵錯工具清單。選擇 [Docker: 在容器中偵錯]
  3. 當系統提示您選擇使用 Dockerfile 建置 ([使用 Dockerfile]) 或使用 .NET SDK 建置 ([使用 .NET SDK]) 的選項時,請選取 [使用 .NET SDK]。
  4. 如果您的工作區中有多個專案檔案,請選擇與您要偵錯的專案相關聯的專案檔案。如果建置成功,您的 .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 偵錯

  1. 等待直到出現通知,詢問您是否要新增偵錯所需的資產。選取 [是]

    csharpPrompt

  2. 開啟命令面板 (⇧⌘P (Windows、Linux Ctrl+Shift+P)) 並輸入 [Docker: 將 Docker 檔案新增至工作區...]。如果您已經 Docker 化您的應用程式,您可以改為執行 [Docker: 初始化 Docker 偵錯]。依照提示操作。

  3. 切換到 [執行與偵錯] 檢視 (⇧⌘D (Windows、Linux Ctrl+Shift+D))。

  4. 選取 [Docker .NET Core Launch] 啟動組態。

  5. 開始偵錯!(F5)

使用 SSL 支援執行與偵錯

若要啟用 SSL (使用 HTTPS 通訊協定),您需要對組態進行一些變更。

  1. 在 Dockerfile 中,將 EXPOSE 行新增至基礎區段,以定義 HTTPS/SSL 的個別連接埠。保留另一個 EXPOSE 行,並為 HTTP 請求使用不同的連接埠。

    FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
    WORKDIR /app
    EXPOSE 5000
    EXPOSE 5001
    
  2. .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 時都從專案檔案清單中選擇),您可以依照下列步驟儲存您的啟動設定檔

  1. 依照 .NET SDK 容器建置 中的步驟操作,並保持偵錯工作階段處於作用中狀態。

  2. 按一下偵錯工具檢視中的齒輪圖示。

    dockerSharedFolders

  3. 選取 [Docker: 在容器中偵錯]

  4. 選擇與您要偵錯的專案相關聯的專案檔案

您的專案偏好設定已儲存,您不再需要在 F5 上選擇專案檔案