System.Drawing.Common 대안 (.NET 7 및 비 Windows 환경)
Microsoft는 .NET 6부터 Linux 및 macOS에서 System.Drawing.Common에 대한 지원을 중단했습니다. 이 라이브러리는 이제 Windows에서만 작동합니다. 더 자세한 내용은 공식 문서를 참조하십시오.
"System.Drawing.Common은 이 플랫폼에서 지원되지 않습니다" 오류를 방지하기 위한 해결 방법
.NET 6
비 Windows 운영 체제에서는 TypeInitializationException이(가) PlatformNotSupportedException을(를) 내부 예외로 던집니다. 플랫폼 분석기는 Windows 이외의 플랫폼에 대해 컴파일 시간 경고를 발생시킵니다. 구성 옵션을 설정하지 않으면 다음과 같은 런타임 예외가 발생합니다.
System.TypeInitializationException: 'Gdip' 형식 초기화 프로그램에서 예외가 발생했습니다.
---- System.PlatformNotSupportedException: System.Drawing.Common은 Windows 이외의 플랫폼에서 지원되지 않습니다.
.NET 6에서의 임시 해결 방법:
비 Windows 플랫폼에 대한 지원을 활성화하려면 runtimeconfig.json 파일에서 System.Drawing.EnableUnixSupport 런타임 구성 스위치를 true로 설정하십시오:
{
"runtimeOptions": {
"configProperties": {
"System.Drawing.EnableUnixSupport": true
}
}
}
또한, 프로그램적으로 설정을 활성화하려면 코드 시작 부분에 다음 줄을 추가하십시오.
// Enable System.Drawing.Common support on non-Windows platforms in .NET 6
System.AppContext.SetSwitch("System.Drawing.EnableUnixSupport", true);
// Enable System.Drawing.Common support on non-Windows platforms in .NET 6
System.AppContext.SetSwitch("System.Drawing.EnableUnixSupport", true);
' Enable System.Drawing.Common support on non-Windows platforms in .NET 6
System.AppContext.SetSwitch("System.Drawing.EnableUnixSupport", True)
.NET 7 이상
.NET 7부터 Microsoft는 Linux와 macOS에서 System.Drawing.Common에 대한 지원을 완전히 제거했으며, 이전에 사용 가능했던 해결 방법도 포함됩니다.
Iron Software는 System.Drawing.Common의 오픈 소스 대체품을 발표했으며, IronSoftware.Drawing이라고 불립니다.
더 자세한 내용을 알아보려면 공식 문서를 참조하십시오.

