You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置nvim-dap使netcoredbg连接Docker中运行的.NET应用?

配置nvim-dap连接Docker容器中的.NET应用

一、Docker容器端准备

  • 启动容器时映射调试端口(默认远程调试端口为5000,可自定义):
    docker run -p 5000:5000 --name your-app-container your-dotnet-image
    
  • 确保容器内的.NET应用以调试模式启动,可通过以下方式实现:
    • 在Dockerfile中添加环境变量:
      ENV ASPNETCORE_ENVIRONMENT=Development
      
    • 启动容器时指定调试启动命令:
      docker run -p 5000:5000 your-dotnet-image dotnet run --launch-profile "Development"
      
    • 若使用已编译的dll,启动时附加调试参数:
      docker run -p 5000:5000 your-dotnet-image dotnet /app/your-app.dll --debug
      

二、nvim-dap配置修改

1. 适配器配置(保持原配置即可)

本地netcoredbg的适配器无需调整,沿用你现有的配置:

dap.adapters.coreclr = {
  type = 'executable',
  command = '/path/to/dotnet/netcoredbg/netcoredbg',
  args = {'--interpreter=vscode'}
}

2. 添加Attach模式的调试配置

在dap.configurations.cs中新增远程Attach的配置项,可保留原有的本地启动配置:

dap.configurations.cs = {
  -- 本地启动调试配置(可选保留)
  {
    type = "coreclr",
    name = "launch - netcoredbg",
    request = "launch",
    program = function()
        return vim.fn.input('Path to dll ', vim.fn.getcwd() .. '/bin/Debug/', 'file')
    end,
  },
  -- Docker远程Attach配置
  {
    type = "coreclr",
    name = "attach - docker netcoredbg",
    request = "attach",
    -- 指定Docker映射到主机的地址和端口
    address = "localhost",
    port = 5000,
    -- 映射容器与主机的源码路径,解决符号文件不匹配问题
    sourceFileMap = {
      -- 左侧为容器内应用根路径,右侧为主机项目根路径,按需修改
      ["/app"] = vim.fn.getcwd(),
    },
  },
}

三、调试流程

  1. 确认Docker容器已启动,应用处于调试就绪状态
  2. 在nvim中打开项目源码
  3. 执行:DapContinue,选择attach - docker netcoredbg配置
  4. 设置断点后即可开始调试

注意事项:

  • 容器内应用版本需与主机源码版本一致,否则断点可能无法命中
  • 若自定义了调试端口,需同步修改配置中的port值
  • sourceFileMap的路径需根据实际部署情况调整

内容的提问来源于stack exchange,提问作者raysincanes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 04:07:07