.NET 11에서 다루어질 것으로 기대되는 이슈들을 살펴보다 좋은 것을 알았는데, File-based App에서도 ASP .NET Core 애플리케이션을 위한 런치 프로필 설정이 가능하다는 것을 알게 되었습니다.
일일이 명령어나 환경 변수를 지정해주지 않고 app.run.json 파일을 같이 넣어두기만 하면 개발 환경에서 다양한 멀티 호스트를 띄워서 실행해볼 수 있는 식입니다. 그 외에도, app.settings.json 처럼 설정용 JSON 파일도 파일 기반 앱 기준으로 맞출 수 있었습니다.
- Support launch profile configuration file named [ApplicationName].run.json in the app root · Issue #48200 · dotnet/sdk · GitHub
- Add loading of [ApplicationName].settings.json & [ApplicationName].settings.[EnvironmentName].json to default Host · Issue #114302 · dotnet/runtime · GitHub
예를 들어, app.cs 파이는 FBA 코드를 아래와 같이 만들었다면…
#!/usr/bin/env dotnet
#:sdk Microsoft.Net.Sdk.Web
var builder = WebApplication.CreateBuilder(args);
using var app = builder.Build();
app.MapGet("/", (IConfiguration conf) => "Hello World! " + conf["Test"]);
app.Run();
런치 프로필 JSON은 아래처럼…
{
"$schema": "https://json.schemastore.org/launchsettings.json",
"profiles": {
"http": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"applicationUrl": "http://myapp.dev.localhost:5149",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}
그리고 설정용 JSON 파일 app.settings.json 으로 지정하거나, app.settings.Development.json 혹은 app.setttings.Production.json 처럼 환경 별로 지정하는 것도 가능합니다.
{
"Test": "ABC"
}
이렇게 실행하면 손쉽게 파일 기반 앱도 웹 프로젝트처럼 복잡한 구성을 입혀서 개발할 수 있게 됩니다.
