Visual Studio Code is now my favorite development tool and I've migrated all my .NET projects to Code. This article documents the steps to configure a Code launch profile for an ASP.NET Core web application.
Create project
Create a folder named dotnetcore6-web
. Open it in Visual Studio Code.
Open a terminal in the tool and initialize the project using the following command:
dotnet new web
Create a launch.json file
Navigate to Run and Debug tab:
Click link create a launch.json file
.
Select .NET 5+ and .NET Core.
A file named launch.json
is created as the following screenshot shows:
Another file named tasks.json
is also created:
{ "version": "2.0.0", "tasks": [ { "label": "build", "command": "dotnet", "type": "process", "args": [ "build", "${workspaceFolder}/dotnetcore6-web.csproj", "/property:GenerateFullPaths=true", "/consoleloggerparameters:NoSummary" ], "problemMatcher": "$msCompile" }, { "label": "publish", "command": "dotnet", "type": "process", "args": [ "publish", "${workspaceFolder}/dotnetcore6-web.csproj", "/property:GenerateFullPaths=true", "/consoleloggerparameters:NoSummary" ], "problemMatcher": "$msCompile" }, { "label": "watch", "command": "dotnet", "type": "process", "args": [ "watch", "run", "--project", "${workspaceFolder}/dotnetcore6-web.csproj" ], "problemMatcher": "$msCompile" } ]}
Some of the tasks will be used later.
Add hot reload launch profile
Update launch.json
with the following content:
{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "debug-hot-reload", "type": "coreclr", "request": "launch", "preLaunchTask": "build", "program": "dotnet", "args": [ "watch", "--project", ".", "--verbose" ], "cwd": "${workspaceFolder}", "stopAtEntry": false, "serverReadyAction": { "action": "openExternally", "pattern": "\\bNow listening on:\\s+(https?://\\S+)" }, "env": { "ASPNETCORE_ENVIRONMENT": "Development", "Key": "Value" }, "sourceFileMap": { "/Views": "${workspaceFolder}/Views" } }, { "name": ".NET Core Attach", "type": "coreclr", "request": "attach" } ]}
Task build
is executed before debugging.
Run and Debug
Now you can click debug-hot-reload
to launch the debug in Run and Debug tab.
The debug window looks like the following screenshot:
If you change any code in your project, for example, adding a new view model, the debug window will reload automatically.
Happy debugging!