Asp.Net Core 解决使用 Docker调试时出现“准备容器时发生了一个非关键性错误。项目将继续正常工作。错误为: 路径中具有非法字符。”

参考

环境

软件/系统 版本 说明
Windows windows 10 专业版 22H2 64 位操作系统, 基于 x64 的处理器
Microsoft Visual Studio Community 2022 (64 位) - Current 版本 17.14.17
.NET 8
Docker Desktop 4.48.0
Docker Docker version 28.5.1, build e180ab8
Docker Compose Docker Compose version v2.40.0-desktop.1

报错内容

准备容器时发生了一个非关键性错误。项目将继续正常工作。错误为: 路径中具有非法字符。

“ContainerBuildAndLaunch”任务意外失败。
System.ArgumentException: 路径中具有非法字符。
   在 System.IO.Path.CheckInvalidPathChars(String path, Boolean checkAdditional)
   在 System.IO.Path.Combine(String path1, String path2)
   在 Microsoft.VisualStudio.Containers.Tools.Common.PathUtilities.FindFullCommandPathFromPathVariable(String command, String[] extensions)
   在 Microsoft.VisualStudio.Containers.Tools.Common.Client.DockerClient.FindFullDockerCommandPath()
   在 Microsoft.VisualStudio.Containers.Tools.Common.Prerequisites.DockerForWindowsRunningPrerequisite.<IsDockerFunctioningAsync>d__2.MoveNext()
--- 引发异常的上一位置中堆栈跟踪的末尾 ---
   在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   在 Microsoft.VisualStudio.Containers.Tools.Common.Prerequisites.DockerForWindowsRunningPrerequisite.<EvaluateAsync>d__1.MoveNext()
--- 引发异常的上一位置中堆栈跟踪的末尾 ---
   在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   在 Microsoft.VisualStudio.Containers.Tools.Common.Prerequisites.CompositePrerequisite.<EvaluateAsync>d__2.MoveNext()
--- 引发异常的上一位置中堆栈跟踪的末尾 ---
   在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   在 Microsoft.VisualStudio.Containers.Tools.Shared.ContainerLaunchPrerequisiteTaskUtilities.<EvaluateBuildPrerequisitesAsync>d__0.MoveNext()
--- 引发异常的上一位置中堆栈跟踪的末尾 ---
   在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   在 Microsoft.VisualStudio.Containers.Tools.Tasks.ContainerBuildTask.<ExecuteAsync>d__30.MoveNext()
--- 引发异常的上一位置中堆栈跟踪的末尾 ---
   在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   在 Microsoft.VisualStudio.Containers.Tools.Tasks.ContainerBuildTask.Execute()
   在 Microsoft.Build.BackEnd.TaskExecutionHost.Execute()
   在 Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext()

解决步骤

  1. 进入 CMD ,输入 PATH 查看系统路径内是否有特殊字符,如";等。(由于我的电脑已解决,仅作文字描述)
    image

  2. 进入设置->系统信息->高级系统设置->环境变量 内检查,主要检查用户变量系统变量Path的值。
    image

  3. 主要检查每行是否有多余的分号或者如果使用引号进行包裹多行为一行的内容,修改示例如下:

    • 多余分号
      • 错误内容
        ;C:\Program Files\Git\cmd
        
      • 修改后的内容(删除了多余的开头分号)
        C:\Program Files\Git\cmd
        
    • 单行内出现多个分号分隔(这一方法仅供参考,不能确定该操作是否生效)
      • 错误内容
        C:\Program Files\Git\cmd;C:\Program Files\Git\cmd;C:\Program Files\Git\cmd;
        
      • 修改后的内容(拆为多行)
        C:\Program Files\Git\cmd
        C:\Program Files\Git\cmd
        C:\Program Files\Git\cmd
        

    image

  4. 重启编辑器、重新构建即可。

posted @ 2025-10-18 22:33  夏秋初  阅读(8)  评论(0)    收藏  举报