參加你附近的 ,瞭解 VS Code 中的 AI 輔助開發。

在容器中除錯 .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. 系統會提示您一個偵錯程式列表。選擇容器:在容器中除錯
  3. 當提示您選擇使用 Dockerfile 構建(使用 Dockerfile)或使用 .NET SDK 構建(使用 .NET SDK)時,選擇使用 .NET SDK
  4. 如果您的工作區中有多個專案檔案,請選擇與您要除錯的專案相關聯的專案檔案。如果構建成功,您的 .NET 應用程式將在容器中執行,並且 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 檔案...。如果您已經將應用程式容器化,則可以改為執行容器:初始化容器除錯。按照提示進行操作。

  3. 切換到執行和除錯檢視(⇧⌘D(Windows、Linux Ctrl+Shift+D)。

  4. 選擇容器:.NET 啟動啟動配置。

  5. 開始除錯!(F5)

執行和除錯,支援 SSL

要啟用 SSL(使用 HTTPS 協議),您需要對配置進行一些更改。

  1. 在 Dockerfile 中,向基礎部分新增 EXPOSE 行,以定義 HTTPS / SSL 的單獨埠。為 HTTP 請求保留一條單獨的 EXPOSE 行,使用不同的埠。

    FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
    WORKDIR /app
    EXPOSE 5000
    EXPOSE 5001
    
  2. .vscode/tasks.json 檔案中,向 netCore 部分新增 configureSsl: true。此外,在 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. 選擇容器:在容器中除錯

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

您的專案首選項已儲存,您無需再在 F5 時選擇專案檔案