最近尝试使用.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"
}
]
}