IronOCR OCR 프로그램의 System.Drawing.Common 대안 (.NET 7 및 비 Windows 이미지 텍스트 변환 환경)
"System.Drawing.Common은 이 플랫폼에서 지원되지 않습니다"를 피하는 방법
- System.Drawing.Common의 구현은 .NET 6 및 .NET 7에서 Linux와 macOS 플랫폼에서 불가능합니다.
- "System.Drawing.Common이 이 플랫폼에서 지원되지 않습니다"라는 예외 메시지를 받게 됩니다.
- .NET 6에서 System.Drawing.EnableUnixSupport 런타임 구성을 true로 설정합니다.
- 또한 .NET 7에서도 지원이 더 이상 제공되지 않습니다.
- .NET 7을 위해 System.Drawing.Common을 대신하여 IronSoftware.Drawing 오픈 소스 라이브러리를 사용하세요.
.NET 6 및 .NET 7에서 Microsoft는 Linux와 macOS에서 System.Drawing.Common의 지원을 중단했습니다. 라이브러리는 공식 문서에 따라 Windows 플랫폼에서만 작동합니다.
- 비-Windows 운영 체제에서는
PlatformNotSupportedException를 내부 예외로 하는TypeInitializationException가 throw됩니다. - .NET 6에서 플랫폼 분석기는 비-Windows 운영 체제용으로 System.Drawing.Common을 참조하는 코드가 컴파일될 때 컴파일 타임 경고를 발행합니다. 또한 구성 옵션이 설정되지 않으면 다음 런타임 예외가 발생합니다:
System.TypeInitializationException : The type initializer for 'Gdip' threw an exception. --- System.PlatformNotSupportedException : System.Drawing.Common is not supported on non-Windows platforms.
.NET 6에서의 임시 해결책:
runtimeconfig.json 파일에서 System.Drawing.EnableUnixSupport 런타임 구성 스위치를 true로 설정하여 비-Windows 플랫폼 지원을 활성화하세요:
{
"runtimeOptions": {
"configProperties": {
"System.Drawing.EnableUnixSupport": true
}
}
}
프로그램적으로 Unix 지원을 활성화하기 위해 코드의 시작 부분에 다음 코드를 추가하세요:
// Enables Unix support for System.Drawing in .NET 6. This setting is ignored in .NET 7.
System.AppContext.SetSwitch("System.Drawing.EnableUnixSupport", true);
// Enables Unix support for System.Drawing in .NET 6. This setting is ignored in .NET 7.
System.AppContext.SetSwitch("System.Drawing.EnableUnixSupport", true);
' Enables Unix support for System.Drawing in .NET 6. This setting is ignored in .NET 7.
System.AppContext.SetSwitch("System.Drawing.EnableUnixSupport", True)
.NET 7
.NET 7의 출시와 함께 Microsoft는 System.Drawing.Common이 Linux와 macOS에서 지원되지 않도록 하는 임시 해결책을 제거했습니다.
Iron Software는 System.Drawing.Common의 대체 오픈 소스 버전, 즉 IronSoftware.Drawing을 출시했습니다. 로그아웃 NuGet 및 GitHub에서 확인할 수 있습니다.
자세한 내용을 보려면 문서 페이지를 방문하십시오: IronSoftware Drawing Documentation

