VS Code 報錯preLaunchTask“build”已終止,退出程式碼為 2 一例的解決方案
阿新 • • 發佈:2018-11-16
最近嘗試使用.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"
}
]
}