This extension provides a small set of commands to save (per workspace) which .csproj and launch profile you want to run, and then starts debugging by generating a coreclr configuration.
It’s especially useful in solutions with many projects where you frequently switch which project/profile you’re debugging.
Use this extension when you want a “start project” + “launch profile” workflow for .NET in VS Code (similar to what the .NET Dev Kit experience enables), without requiring Dev Kit.
It lets you quickly:
- Pick which
.csprojis the start project in the current workspace - Pick which
launchSettings.jsonprofile should be used
Then you can press Alt+F5 to start debugging the selected project using the selected profile.
If you prefer the standard VS Code flow, you can also press F5 and choose dotnet-start from VS Code’s native debug picker. Note: when you don’t already have a workspace launch.json, VS Code may first prompt you to select/create a debug configuration (e.g., a .NET/C# “build type”) before you can pick dotnet-start.
In your workspace:
-
Use the dedicated dotnet-start shortcut to run dotnet-start: Start Debugging
- Press
Alt+F5to start debugging the selected project/profile. - Choose a
.csprojin your workspace as the start project. This picker appears automatically if no project is selected yet. - Choose a
launchSettings.jsonlaunch profile (Visual Studio-style profiles). This picker appears automatically if no profile is selected yet.
- Press
-
Or press
F5and select dotnet-start from VS Code’s debug configuration picker- This is useful if you want to use VS Code’s normal debug flow, especially when there is no
.vscode/launch.jsonyet. - It will offer dotnet-start option as .NET coreclr debugger option.
- This is useful if you want to use VS Code’s normal debug flow, especially when there is no
-
Add an entry to your workspace’s
launch.json- Run dotnet-start: Add dotnet-start to launch.json to add a debug configuration that you can then select when starting debugging with
F5.
- Run dotnet-start: Add dotnet-start to launch.json to add a debug configuration that you can then select when starting debugging with
{
"version": "0.2.0",
"configurations": [
{
"type": "coreclr",
"request": "launch",
"name": "dotnet-start",
"program": "dotnet"
}
]
}
Notes:
- Launch profiles are read from
Properties/launchSettings.jsonnext to the selected.csproj. - Debugging launches the built output (
dotnet <path-to-binary>) and applieslaunchSettings.jsonenv/args from the selected profile. This avoids common breakpoint issues withdotnet run. - VS Code’s
F5behavior depends on which debug configuration is currently selected. After you pick dotnet-start once, it should remain selected in that window; if VS Code asks you to pick a configuration again, just pick dotnet-start. - The extension delegates to your installed .NET debugger (
coreclr) viavscode.debug.startDebugging(...).
VS Code's top-level debug "categories" in the picker are driven by installed debugger types (debug adapters) contributed by extensions. This extension does not ship a debugger; it starts debugging by generating a
coreclrconfiguration and callingvscode.debug.startDebugging(...).As a result,
dotnet-startappears under the existing .NET /coreclrgrouping provided by your installed .NET tooling.
GitHub source: https://github.com/pavel-purma/vscode-dotnet-start