Debugging 是否要使用visual studio代码为.NET Core 3.1项目设置自动dotnet监视运行?

Debugging 是否要使用visual studio代码为.NET Core 3.1项目设置自动dotnet监视运行?,debugging,.net-core,asp.net-core-webapi,core,Debugging,.net Core,Asp.net Core Webapi,Core,我需要设置一个自动重新启动时,一些源代码文件修改 我正在使用带有DotnetCore3.1的VS代码来开发一个web api 调试启动时,我可以看到在中发布的REST Api,但是如果我更改了模型或其他内容,我需要重新启动调试以查看更改 我曾尝试在终端上启动项目,运行dotnet watch,并将调试附加到进程中,但我想知道是否可以在项目中配置一些东西,在启用dotnet watch的情况下启动所有调试。是的,这是完全可能的 在VS代码中,打开您的tasks.json,它应该位于.vscode文

我需要设置一个自动重新启动时,一些源代码文件修改

我正在使用带有DotnetCore3.1的VS代码来开发一个web api

调试启动时,我可以看到在中发布的REST Api,但是如果我更改了模型或其他内容,我需要重新启动调试以查看更改


我曾尝试在终端上启动项目,运行
dotnet watch
,并将调试附加到进程中,但我想知道是否可以在项目中配置一些东西,在启用
dotnet watch
的情况下启动所有调试。

是的,这是完全可能的

在VS代码中,打开您的tasks.json,它应该位于.vscode文件夹中。 在那里你应该找到一个任务数组

最简单的方法是简单地添加“监视”来编辑构建任务:

"tasks": [
        {
            "label": "build",
            "command": "dotnet",
            "type": "process",
            "args": [
                "watch",
                "build",
                "${workspaceFolder}/delete.csproj",
                "/property:GenerateFullPaths=true",
                "/consoleloggerparameters:NoSummary"
            ],
            "problemMatcher": "$msCompile"
        }
 ]
由于“build”是默认任务,因此在按F5和startig调试时,调试时始终会启动dotnet启动构建。关键是将
watch
添加到args数组中

如果您想为此指定一个专用任务,可以在tasks.json中添加一个:

{
    "label": "watch",
    "command": "dotnet",
    "type": "process",
    "args": [
        "watch",
        "run",
        "${workspaceFolder}/delete.csproj",
        "/property:GenerateFullPaths=true",
        "/consoleloggerparameters:NoSummary"
    ],
    "problemMatcher": "$msCompile"
}
launch.json
中,您可以将此任务设置为预启动任务:

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

我使用
dotnetnewconsole
创建了一个小测试项目,在本地进行测试,因此使用delete.dll文件名。请根据需要进行修改。

不幸的是,这不起作用
launch
会阻止.dll,因此每当发生更改时,
dotnet watch
无法使用
更新它们,进程无法访问文件
错误。