Windows下Visual Studio ASP.NET Core项目Docker调试提示nuget.config不存在
问题原因
你遇到的两个报错是关联的:Docker command failed with exit code 0 是Docker构建步骤提前终止的外层提示,核心错误是error CTC1014: failed to compute cache key: "/nuget.config" not found,本质是Docker构建过程中,在指定的构建上下文路径下找不到Dockerfile里引用的nuget.config文件,属于构建上下文与文件路径不匹配的常见问题。
可用解决方案
- 核对Docker构建上下文路径
Visual Studio默认生成的Dockerfile会将解决方案根目录作为构建上下文,如果你把nuget.config放在了单个项目的子目录下,就会触发找不到的报错。把nuget.config移动到解决方案根目录(和.sln文件同层级)即可解决大部分情况的问题。 - 补全默认nuget.config文件
如果你从未自定义过nuget源,也没有对应的nuget.config文件,可以直接在解决方案根目录新建该文件,写入默认配置即可:
<?xml version="1.0" encoding="utf-8"?> <configuration> <packageSources> <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" /> </packageSources> </configuration>
- 修改Dockerfile引用路径
如果你需要把nuget.config放在项目子目录,直接修改Dockerfile中对应的COPY指令,将路径改成相对构建上下文的正确路径即可,示例:
# 原指令 COPY ["nuget.config", "."] # 修改为对应项目路径(替换为你的实际项目文件夹名) COPY ["MyAspNetCoreApp/nuget.config", "."]
- 移除冗余的nuget.config引用
如果你的项目不需要自定义nuget源配置,直接删除Dockerfile中所有引用nuget.config的COPY指令即可,构建时会自动使用官方默认的nuget源拉取依赖。 - 调整Visual Studio调试配置
右键项目 → 选择「属性」→ 进入「调试」选项卡 → 打开「Docker调试配置」,确认「构建上下文」的路径指向nuget.config所在的上层目录即可。
内容的提问来源于stack exchange,提问作者JustAnotherCoder894
相关产品推荐
相关产品推荐

