즐겁게 개발을...

개발보다 게임이 더 많이 올라오는 것 같은...

개발/C#

C# 클래스 라이브러리 작성 시 다중 타겟 프레임워크 지원

다물칸 2023. 6. 22. 13:53
728x90
반응형

.NET 6.0기반 클래스 라이브러리 DLL을 만들었는데 닷넷 프레임워크에서 참조 시 오류가 발생했다. 

타겟 플랫폼을 다중으로 설정하는 방법을 알아보자. 

 

클래스 프로젝트 csproj파일을 편집한다. 

 

// 기본은 <TargetFramework>로 감싸있을 건데 다중으로 설정하려면 s를 붙여야 한다.
// net462는 닷넷 프레임워크 4.6.2를 지원하겠다는 내용이다. 
// 콜론으로 다양한 프레임워크를 지원할 수 있다.

<TargetFrameworks>net6.0-windows;net462;</TargetFrameworks>

.NET 6.0을 기반으로 하면 C# 10.0일텐데 기본적인 프로젝트 속성으로 인해 하위호환이 안될 수 있다. 

 

1. 전역 Using 옵션 해제 (10.0 이상만 사용가능)

프로젝트 속성에서 "using"로 검색해보면 기본적으로 체크되어 있다. 체크해제하자. 

이것의 기능은 소스에서 사용중인 Using을 전역으로 자동생성하는 기능을 담고 있다. 만약 코드파일 내에 Using이 제대로 안되어 있다면 오류가 날 텐데, 해당 파일마다 Using만 제대로 넣어주면 문제될 것은 없다. 

 

2. Null 허용 (8.0 이상만 사용가능)

프로젝트 속성에서 "Nullable"로 검색해보면 기본적으로 사용으로 설정되어 있다. "사용 안 함"으로 변경해주자. 

 

string? kkk { get; set; }

추측하건데 변수 선언 시 위와 같이 Null허용을 지원할지 말지에 대한 기능으로 코드내에서 사용하지 않는 다면 문제될 것은 없을 것 같다. 

 

참고) 프레임워크 별 C#버전 상관관계

 

반응형