如何配置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
- 在Dockerfile中添加环境变量:
二、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(), }, }, }
三、调试流程
- 确认Docker容器已启动,应用处于调试就绪状态
- 在nvim中打开项目源码
- 执行
:DapContinue,选择attach - docker netcoredbg配置 - 设置断点后即可开始调试
注意事项:
- 容器内应用版本需与主机源码版本一致,否则断点可能无法命中
- 若自定义了调试端口,需同步修改配置中的
port值 sourceFileMap的路径需根据实际部署情况调整
内容的提问来源于stack exchange,提问作者raysincanes
相关产品推荐
相关产品推荐

