IronBarcode - System.Drawing.Common의 대안
Iron Software는 _System.Drawing.Common_의 오픈 소스 대체 제품인 IronDrawing을 제공합니다. 여기를 클릭하여 IronDrawing에 대해 더 알아보세요.
.NET 6부터 _System.Drawing.Common_은 Windows에서만 작동합니다.
- Windows가 아닌 운영 체제에서는 런타임 구성 스위치를 설정하지 않으면
TypeInitializationException예외가PlatformNotSupportedException내부 예외와 함께 발생합니다. - .NET 6에서는 플랫폼 분석기가 비 Windows 운영 체제를 위해 참조 코드를 컴파일할 때 컴파일 시간 경고를 발생시킵니다. 또한, 구성 옵션을 설정하지 않으면 다음과 같은 런타임 예외가 발생합니다.
System.TypeInitializationException : The type initializer for 'Gdip' threw an exception.
---- System.PlatformNotSupportedException : System.Drawing.Common is not supported on non-Windows platforms. See https://aka.ms/systemdrawingnonwindows for more information.
Stack Trace:
at System.Drawing.SafeNativeMethods.Gdip.GdipCreateBitmapFromFile(String filename, IntPtr& bitmap)
/_/src/libraries/System.Drawing.Common/src/System/Drawing/Bitmap.cs(42,0): at System.Drawing.Bitmap..ctor(String filename, Boolean useIcm)
/_/src/libraries/System.Drawing.Common/src/System/Drawing/Bitmap.cs(25,0): at System.Drawing.Bitmap..ctor(String filename)
/_/src/libraries/System.Resources.ResourceManager/tests/ResourceManagerTests.cs(270,0): at System.Resources.Tests.ResourceManagerTests.EnglishImageResourceData()+MoveNext()
/_/src/libraries/System.Linq/src/System/Linq/Select.cs(136,0): at System.Linq.Enumerable.SelectEnumerableIterator`2.MoveNext()
----- Inner Stack Trace -----
/_/src/libraries/System.Drawing.Common/src/System/Drawing/LibraryResolver.cs(31,0): at System.Drawing.LibraryResolver.EnsureRegistered()
/_/src/libraries/System.Drawing.Common/src/System/Drawing/GdiplusNative.Unix.cs(65,0): at System.Drawing.SafeNativeMethods.Gdip.PlatformInitialize()
/_/src/libraries/System.Drawing.Common/src/System/Drawing/Gdiplus.cs(27,0): at System.Drawing.SafeNativeMethods.Gdip..cctor()
임시 해결 방법: runtimeconfig.json 파일에서 System.Drawing.EnableUnixSupport 런타임 구성 스위치를 true로 설정하여 비-Windows 플랫폼에 대한 지원을 활성화하십시오:
{
"runtimeOptions": {
"configProperties": {
"System.Drawing.EnableUnixSupport": true
}
}
}
이 해결책은 .NET 6에서 System.Drawing 지원을 위한 Microsoft의 현재 해결책입니다: https://docs.microsoft.com/en-us/dotnet/core/compatibility/core-libraries/6.0/system-drawing-common-windows-only

