.NET CORE 로 설정 정보 Configuration 파일을 가져오는데, 다른 프로젝트의 소스를 그대로 복사했다가 빌드가 안되는 이상현상을 발견해서 해당 내용을 공유합니다.
일반적으로 .NET CORE 에서는 설정 정보를 appsettings.json 파일을 이용해서 처리하는 것을 권장하고 있습니다.
그것을 불러올 때는 주로 IConfiguration , ConfigurationBuilder 등의 클래스를 이용하게 되는데요.
이번 케이스는 ConfigurationBuilder를 사용시에 파일의 기본 위치를 지정하는 SetBasePath 라는 함수를 찾지 못하는 경우가 있었습니다. 문제는 복사하기 이전, 이후 모두 동일한 코드를 사용했다는 것이고 참조하고 있는 패키지도 모두 동일했다는 점입니다.
var builder = new ConfigurationBuilder().
SetBasePath(Directory.GetCurrentDirectory()).
AddJsonFile("appsettings.json");
이런 소스 코드에서 SetBasePath를 찾을 수 없었습니다.
Microsoft.Extensiosn.Configuration.Abstractions 라는 기본적인 패키지는 포함이 되어있었고요.
결과적으로는 다른 소스코드 어디엔가에서 내부적으로 참조가 되어있는 패키지들이 누락되어서 생긴 이슈였습니다.
SetBasePath 라는 함수는 Microsoft.Extensions.Configuration.FileExtensions 라는 패키지를 포함해야 합니다.
AddJsonFile 이라는 함수는 Microsoft.Extensions.Configuration.Json 이라는 패키지를 포함해야 합니다.
위의 두 패키지를 추가해서 주게 되면 어디에서든 문제없이 해당 소스 코드를 사용할 수 있게 됩니다!
'C# > .Net Core' 카테고리의 다른 글
C#에서 예외필터(ExceptionFilter) 기능 사용해보기 (0) | 2024.05.05 |
---|---|
Asp.Net Core에서 GetService 와 GetRequiredService 의 차이 (0) | 2024.04.22 |
EntitiyFramework Core CodeFirst 로 데이터베이스 생성하기 (0) | 2024.04.09 |
댓글