1. 程式人生 > >VS Code 報錯preLaunchTask“build”已終止,退出程式碼為 2 一例的解決方案

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"
        }
    ]
}