File-based App을 VSCode에서 쉽게 실행할 수 있게 런처 구성하기

2025년 8월 현재, 아직 File-based App은 실행과 퍼블리싱만 가능하고 디버거 연동까지는 지원되지 않는 것 같습니다. VS Code 및 Code OSS 계통 에디터들의 경우, 완전하지는 않지만 F5 키를 눌러서 실행할 런처를 JSON으로 지정할 수 있어 이 기능을 활용하면 손쉽게 dotnet run 명령을 에디터 수준에서 호출하고, 세션 상태도 관리가 가능하기 때문에 이를 보조하는 런처 JSON을 만들면 약간은 편리합니다.

예를 들어 다음과 같은 ASP .NET Core 애플리케이션이 있다고 가정해보겠습니다.

#!/usr/bin/env dotnet
#:sdk Microsoft.NET.Sdk.Web

var builder = WebApplication.CreateBuilder(args);
using var app = builder.Build();
app.MapGet("/", () => "Hello, World!");
app.Run();

그 다음, .vscode/launch.json 파일을 다음과 같이 구성합니다.

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Run FBA (Current File)",
            "type": "node",
            "request": "launch",
            "runtimeExecutable": "dotnet",
            "runtimeArgs": [
                "run",
                "${file}"
            ],
            "cwd": "${workspaceFolder}",
            "console": "integratedTerminal",
            "skipFiles": [
                "<node_internals>/**"
            ],
            "serverReadyAction": {
                "action": "openExternally",
                "pattern": "\\bNow listening on:\\s+(https?://\\S+)"
            }
        }
    ]
}

이렇게 구성하여 ASP .NET Core 계통 애플리케이션을 수동으로 dotnet run 명령 없이도 손쉽게 켜고 끌 수 있어 개발 경험이 조금 더 개선됩니다.

4 Likes

나중에 알게 되었는데, vsdbg가 Mac OS, Linux용으로도 제공된다는 것을 확인했습니다. File-based App을 대상으로 vsdbg를 붙일 수 있는지 살펴볼 필요가 있겠다는 생각이 드네요! 이것도 방법이 있고 정형화할 수 있다면 후속으로 포스팅해보겠습니다. :smiley:

2 Likes