🚀 在 VS Code 中免費取得

在容器中偵錯 .NET

先決條件

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

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

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

    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 啟動] 啟動組態。

  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 鍵時選擇專案檔案