ChatGPT 대답

C# appSetting 파일로 분리

호야70 2025. 5. 31. 12:06
728x90

C#에서 appSettings외부 파일로 지정하여 읽는 방식.NET Framework에서 다음과 같이 가능합니다.


✅ 외부 appSettings 파일 지정 방식 (file 속성 사용)

App.config 또는 Web.config 파일의 <appSettings> 섹션에서 file="외부파일명" 속성을 지정하면, 해당 외부 파일에서 key/value 설정을 읽어올 수 있습니다.


📁 예시 구성

1. App.config 또는 Web.config

<configuration>
  <appSettings file="AppSettingsExternal.config">
    <add key="FallbackKey" value="FallbackValue" />
  </appSettings>
</configuration>

2. 외부 설정 파일 AppSettingsExternal.config (실행파일과 같은 폴더에 위치)

<appSettings>
  <add key="ApiUrl" value="https://external.api.com" />
  <add key="Timeout" value="30" />
</appSettings>

주의: 외부 파일의 루트 요소는 반드시 <appSettings>여야 합니다.
App.config병합되며, 외부 파일의 값이 우선 적용됩니다.


✅ C# 코드 사용 예

using System;
using System.Configuration;

class Program
{
    static void Main()
    {
        string apiUrl = ConfigurationManager.AppSettings["ApiUrl"];
        string timeout = ConfigurationManager.AppSettings["Timeout"];
        string fallback = ConfigurationManager.AppSettings["FallbackKey"];

        Console.WriteLine($"ApiUrl: {apiUrl}");
        Console.WriteLine($"Timeout: {timeout}");
        Console.WriteLine($"Fallback: {fallback}");
    }
}

⚠️ 주의 사항

  • file 속성은 .NET Framework에서만 지원됩니다.
  • .NET Core 또는 .NET 5+에서는 이 방식이 지원되지 않으며, appsettings.json + IConfiguration 방식 사용해야 합니다.
  • 상대 경로는 실행 파일 기준입니다 (bin\Debug\... 등).

이 방식은 실행 환경에 따라 경로 문제가 생길 수 있으니, 디버그/릴리즈 배포 시 외부 설정 파일이 복사되도록 Copy to Output Directory 속성을 "Copy always"로 설정하세요.

728x90
반응형