I have created a new .NET Core application with the command:
dotnet new console -o test
When I try to run it in the Visual Studio Code debugger, I get:
Could not find the preLaunchTask 'build'?
Visual Studio Code generated these files for me:
tasks.json:
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "0.1.0",
"command": "dotnet",
"isShellCommand": true,
"args": [],
"tasks": [
{
"taskName": "build",
"args": [ ],
"isBuildCommand": true,
"showOutput": "silent",
"problemMatcher": "$msCompile"
}
]
}
and
launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": ".NET Core Launch (console)",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceRoot}/bin/Debug/<target-framework>/<project-name.dll>",
"args": [],
"cwd": "${workspaceRoot}",
"stopAtEntry": false,
"console": "internalConsole"
},
{
"name": ".NET Core Launch (web)",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceRoot}/bin/Debug/<target-framework>/<project-name.dll>",
"args": [],
"cwd": "${workspaceRoot}",
"stopAtEntry": false,
"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": "${workspaceRoot}/Views"
}
},
{
"name": ".NET Core Attach",
"type": "coreclr",
"request": "attach",
"processId": "${command:pickProcess}"
}
]
}
My problem looks similar to this one, but in my case there are no mismatches between the names in launch.json and tasks.json for the preLaunchTask so the answer does not apply in this case. I'm running Visual Studio Code version 1.11.2 and .NET Core 1.1 (latest versions as of when this post was created).
I have tried the same on both a Windows machine and a Mac with the same problem. If I do the command "dotnet restore" and "dotnet run", the code runs with no problems, but I still get the same error: "Could not find the preLaunchTask 'build'"
For me, it works to restart VS Code after tasks.json
and/or launch.json
files creation.
Also note, that you need to update "program"
settings in launch.json
with the path to dlls.
Change tasks.json as below.
tasks.json
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"command": "",
"args": [],
"tasks": [
{
"label": "build",
"command": "dotnet",
"type": "shell",
"args": [
"build"
],
"options": {
"cwd": "${workspaceRoot}"
},
"group": {
"kind": "build",
"isDefault": true
},
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "shared"
},
"problemMatcher": "$msCompile"
}
]
}
Yet another reason for this error could be, that the used launch configuration is defined inside my_project.code-workspace file (not in launch.json file).
In such case the tasks.json is not used, but tasks must be defined inside the my_project.code-workspace file.
This might be a "feature", but it behaves as a bug, because:
Configure Task
which then opens or offer to create file ./.vscode/tasks.jsonIf a debugging session is started using debug config: my_debug_config (workspace), only tasks defined in my_project.code-workspace file are used.
But while still having the same workspace opened, selecting debug config: dir_debug_config (my_dir), which is defined in the launch.json file, will then use tasks from the tasks.json file.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With