VS Code 报错preLaunchTask“build”已终止,退出代码为 2 一例的解决方案

最近尝试使用.net core 开发新的系统. 于是先装了一个vs code 调试的时候总是报错.

preLaunchTask“build”已终止,退出代码为 2。

实际上这个错误的意思是, 运行 “build” 任务 的时候就出错了, 无法继续运行下去.

这是啥意思呢? 对于vscode新手来讲. 这还真不知道如何排查.
后来无意间看到了网上说的 Task 命令 然后又看了下项目目录结构. 慢慢的就对vscode 的套路略有所知.

一般在我们项目的根目录下, 会有个 .vscode 目录
下面有两个文件launch.json 和 tasks.json.

这两个文件的作用很重要. 但是也不算复杂, 当然第一次接触有点懵…

launch.json 这个文件定义了如何去启动和调试这个项目.
launch.json -> configurations 节点配置了可以有几种方式启动和调试这个项目.
我这边默认生成的是这两个节点

{
   // Use IntelliSense to find out which attributes exist for C# debugging
   // Use hover for the description of the existing attributes
   // For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md
   "version": "0.2.0",
   "configurations": [
        {
            "name": ".NET Core Launch (web)", //这个名字就是界面上可以看到的名字.
            "type": "coreclr",
            "request": "launch",
            "preLaunchTask": "build",  //运行之前要先执行完这个任务, 这个build 是一个名字,与task.json 的需要一致..
            // If you have changed target frameworks, make sure to update the program path.
            "program": "${workspaceFolder}/WebApplication1/bin/Debug/netcoreapp2.1/WebApplication1.dll",
            "args": [],
            "cwd": "${workspaceFolder}/WebApplication1",
            "stopAtEntry": false,
            "internalConsoleOptions": "openOnSessionStart",
            "launchBrowser": {
                "enabled": true,
                "args": "${auto-detect-url}",
                "windows": {
                    "command": "cmd.exe",
                    "args": "/C start ${auto-detect-url}"
                },
                "osx": {
                    "command": "open"
                },
                "linux": {
                    "command": "xdg-open"
                }
            },
            "env": {
                "ASPNETCORE_ENVIRONMENT": "Development"
            },
            "sourceFileMap": {
                "/Views": "${workspaceFolder}/Views"
            }
        },
        {
            "name": ".NET Core Attach",  这个名字就是界面上可以看到的名字.
            "type": "coreclr",
            "request": "attach",        //附加到进程
            "processId": "${command:pickProcess}"
        }
    ,]
}

我的项目默认生成了两种启动方式,
.NET Core Launch (web) //命令行运行模式, 调试web用
.NET Core Attach //附加到进程模式.

但是我的仍然报如下的错误.

 Executing task: D:\Program Files (x86)\Sybase\PowerBuilder 12.5\dotnet build F:\我的文件\TempProject\WebApplication1/WebApplication1/WebApplication1.csproj <

终端进程已终止,退出代码: 2

终端将被任务重用,按任意键关闭。

经过仔细的排查, 竟然发现, 运行的是 PowerBuilder 12.5\目录下面的dotnet …

我晕. 看来要把 PowerBuilder 12.5 卸载掉, 或者改一下环境变量了.

后来想了想还是改task.json 比较方便.

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
//            "command": "dotnet", 曾经是这个地址
            "command": "C:\\Program Files\\dotnet\\dotnet.exe", //写成这种更准确
            "type": "process",
            "args": [
                "build",
                "${workspaceFolder}/WebApplication1/WebApplication1.csproj"
            ],
            "problemMatcher": "$msCompile"
        }
    ]
}
  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值