Код Visual Studio: Не удалось найти сборку preLaunchTask?

Я создал новое приложение .NET Core с командой:

dotnet new console -o test

Когда я пытаюсь запустить его в отладчике кода Visual Studio, я получаю:

Could not find the preLaunchTask 'build'?

Код Visual Studio сгенерировал эти файлы для меня:

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

и

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

Моя проблема похожа на на эту, но в моем случае нет совпадений между именами в launch.json и tasks.json для preLaunchTask, поэтому ответ в этом случае не применяется. Я запускаю Visual Studio Code версии 1.11.2 и .NET Core 1.1 (последние версии с момента создания этого сообщения).

Я пробовал то же самое на обеих машинах Windows и Mac с той же проблемой. Если я выполняю команду "восстановление dotnet" и "прогон dotnet", код запускается без проблем, но я все равно получаю ту же ошибку: "Не удалось найти сборку preLaunchTask"

Ответ 1

Для меня он работает, чтобы перезапустить VS Code после создания файлов tasks.json и/или launch.json.

Также обратите внимание, что вам нужно обновить настройки "program" в launch.json с помощью пути к DLL.

Ответ 2

Измените tasks.json, как показано ниже.

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

Ответ 3

Это уже было адресовано мастером и будет доступно в следующей версии. Повторное открытие кода VS в папке должно помочь решить проблему.

Ответ 4

Просто слово caution-

Если workspaceFolder не находится на том же уровне, что и, например, папка приложения tasks.json не будет создана, и вы получите все вышеперечисленные ошибки. Я создал подпапку после открытия проекта и получил все вышеперечисленные ошибки - все исправлено после запуска отладки из правильной папки. Это может объяснить эффект перезапуска кода VS.