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

使用docker-compose运行ASP.NET Core项目时提示vsdbg不存在、调试适配器启动失败

核心问题根因说明

报错/bin/sh: 1: /remote_debugger/vsdbg: not found与构建端提示vsdbg已找到的矛盾点,本质是Visual Studio本地已准备好调试工具,但调试工具未被正确加载到docker-compose启动的容器中,或容器内无法正常执行该工具。

排查方向

1. 检查docker-compose配置完整性

  • 确认启动调试时加载了VS自动生成的docker-compose.override.yml文件。VS为docker-compose项目启用调试时,会自动在该override文件中注入vsdbg工具的临时卷挂载、调试入口点覆盖配置,若你仅加载了自定义的docker-compose.yml启动调试,会导致本地已准备的vsdbg没有被挂载到容器内。
  • 检查自定义Dockerfile中是否存在删除/remote_debugger目录、修改根目录权限的指令,此类操作会导致挂载的vsdbg无法被容器访问。

2. 核对架构兼容性

  • 若你的Docker基础镜像为arm64架构,而Windows主机为x64架构,VS默认推送的x64版本vsdbg在arm64容器内会触发架构不兼容的「文件未找到」报错(即使文件实际存在)。
  • 可手动进入运行中的容器,执行uname -a查看容器架构,执行ls /remote_debugger/确认vsdbg文件是否存在,若文件存在仍报错则可确定为架构不匹配问题,更换与主机架构一致的基础镜像即可。

3. 验证文件共享权限

  • WSL2模式下:若测试项目存放在Windows的/mnt/c等跨系统挂载盘内,WSL2与Windows的跨文件系统挂载会出现权限异常,导致vsdbg的执行权限丢失,容器内无法运行。建议将项目迁移到WSL2虚拟磁盘内重试。
  • Hyper-V模式下:确认Docker Desktop的文件共享设置中已开启项目所在磁盘的共享权限,避免临时挂载的vsdbg目录被权限拦截。

4. 重置VS项目缓存

  • 手动执行docker-compose up -d启动容器,之后通过VS顶部菜单「调试」->「附加到进程」选择目标容器,尝试附加到容器内的.NET进程。若该方式可正常调试,说明VS启动docker-compose调试的自动注入逻辑异常,删除项目根目录下的.vs隐藏文件夹,重置项目缓存后再重试即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 22:27:02