System.Drawing.Common Alternatifleri (.NET 7 ve Windows Dışı)
.NET 6 ile birlikte, Microsoft Linux ve macOS üzerinde System.Drawing.Common desteğini durdurmuştur. Bu kütüphane artık yalnızca Windows üzerinde çalışacaktır. Daha fazla ayrıntı için resmi dokümantasyona bakın.
"System.Drawing.Common bu platformda desteklenmiyor" Hatasını Önlemek için Çözümler
.NET 6
Windows dışı işletim sistemlerinde, bir TypeInitializationException ve iç istisna olarak bir PlatformNotSupportedException oluşur. Platform analizcisi, Windows dışı platformlar için derleme zamanı uyarıları yayımlar. Bir yapılandırma seçeneği ayarlamazsanız, aşağıdaki çalışma zamanı istisnası atılır:
System.TypeInitializationException : 'Gdip' için tür başlatıcı bir istisna fırlattı.
---- System.PlatformNotSupportedException : System.Drawing.Common Windows dışı platformlarda desteklenmemektedir.
.NET 6'da Geçici çözüm:
Windows dışı platformlar için desteği etkinleştirmek için runtimeconfig.json dosyasında System.Drawing.EnableUnixSupport çalışma zamanı yapılandırma anahtarını true olarak ayarlayın:
{
"runtimeOptions": {
"configProperties": {
"System.Drawing.EnableUnixSupport": true
}
}
}
Yapılandırmayı programlı olarak etkinleştirmek için kodunuzun başına aşağıdaki satırı ekleyin:
// 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 ve üstü
.NET 7'den itibaren, Microsoft Linux ve macOS üzerinde System.Drawing.Common desteğini ve daha önce mevcut olan geçici çözümü tamamen kaldırdı.
Iron Software, System.Drawing.Common için IronSoftware.Drawing adlı açık kaynaklı bir yedek yayınladı.
Daha fazla bilgi için resmi dokümantasyona buradan ulaşabilirsiniz.

