参加你附近的 ,了解 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 定义一个单独的端口。保留一个单独的 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. 选择容器:在容器中调试

  4. 选择与您要调试的项目关联的项目文件

您的项目首选项已保存,您不再需要在按 F5 时选择项目文件

© . This site is unofficial and not affiliated with Microsoft.