Горячая настройка автоматического выполнения tnet Watch Run для. NET Core 3.1 проектов с использованием Visual Studio Code? - PullRequest
2 голосов
/ 20 января 2020

Мне нужно настроить автоматический перезапуск при изменении файла с исходным кодом.

Я использую VS Code с Do tnet Core 3.1 для разработки веб-API.

Когда начинается отладка, я вижу мой REST Api, опубликованный в http://localhost: 5001 / api / entity , но если я изменяю модель или что-то еще, мне нужно перезапустить отладку, чтобы см. изменения.

Я пытался запустить проект с dotnet watch run на терминале и связать отладку с процессом, но я хотел бы знать, возможно ли настроить что-то в проекте, чтобы запустить все отладки с включенным dotnet watch.

1 Ответ

0 голосов
/ 21 января 2020

Да, это вполне возможно.

В VS Code откройте tasks.json, который должен находиться в папке .vscode. Там вы должны найти массив задач.

Самый простой способ - просто добавить "watch", чтобы просто отредактировать задачу сборки:

"tasks": [
        {
            "label": "build",
            "command": "dotnet",
            "type": "process",
            "args": [
                "watch",
                "build",
                "${workspaceFolder}/delete.csproj",
                "/property:GenerateFullPaths=true",
                "/consoleloggerparameters:NoSummary"
            ],
            "problemMatcher": "$msCompile"
        }
 ]

Так как "build" является задачей по умолчанию, при нажатии F5 и стартовой отладке это всегда запускает сборку do tnet start при отладке. Главное, чтобы вы добавили watch в массив args.

Если вы хотите создать для этого отдельную задачу, вы можете добавить ее в задачи. json:

{
    "label": "watch",
    "command": "dotnet",
    "type": "process",
    "args": [
        "watch",
        "run",
        "${workspaceFolder}/delete.csproj",
        "/property:GenerateFullPaths=true",
        "/consoleloggerparameters:NoSummary"
    ],
    "problemMatcher": "$msCompile"
}

И в вашем launch.json вы можете установить эту задачу как preLaunchTask:

"configurations": [
    {
        "name": ".NET Core Launch (console)",
        "type": "coreclr",
        "request": "launch",
        "preLaunchTask": "watch", 
        "program": "${workspaceFolder}/bin/Debug/netcoreapp3.0/delete.dll",
        "args": [],
        "cwd": "${workspaceFolder}",
        "console": "internalConsole",
        "stopAtEntry": false
    }
]

Я создал небольшой тестовый проект, используя dotnet new console, чтобы попробовать это локально, отсюда и удаление. имя файла. Пожалуйста, внесите необходимые изменения.

...