System.Drawing.Common Alternatifleri (.NET 7 ve Windows dışı)
"System.Drawing.Common bu platformda desteklenmiyor" u Önlemek İçin Geçici Çözümler
- System.Drawing.Common uygulaması, .NET 6 ve .NET 7 için Linux ve macOS platformlarında mümkün değildir.
- "System.Drawing.Common bu platformda desteklenmiyor" belirten bir istisna mesajı alacaksınız.
- .NET 6 için System.Drawing.EnableUnixSupport çalışma zamanı yapılandırmasını true olarak ayarlayın.
- Desteğin .NET 7'de artık mevcut olmadığını unutmayın.
- .NET 7 için System.Drawing.Common yerine IronSoftware.Drawing açık kaynak kütüphanesini kullanın.
.NET 6 ve .NET 7'de, Microsoft Linux ve macOS üzerinde System.Drawing.Common desteklemeyi durdurdu. Kütüphane, resmi dokümantasyona göre yalnızca Windows platformlarında çalışacaktır.
- Windows dışındaki işletim sistemlerinde,
PlatformNotSupportedExceptioniç istisnası ileTypeInitializationExceptionistisnası atılır. - .NET 6'da platform analizcisi, Windows dışı işletim sistemleri için System.Drawing.Common'e gönderme yapan kod derlendiğinde derleme zamanı uyarıları yayar. Ek olarak, bir yapılandırma seçeneği ayarlanmadığı sürece aşağıdaki çalışma zamanı istisnası atılır:
System.TypeInitializationException : The type initializer for 'Gdip' threw an exception. --- System.PlatformNotSupportedException : System.Drawing.Common is not supported on non-Windows platforms.
.NET 6'da Geçici Çözüm:
System.Drawing.EnableUnixSupport dosyasında true çalışma zamanı yapılandırma anahtarını runtimeconfig.json olarak ayarlayarak Windows dışındaki platformlar için desteği etkinleştirin:
{
"runtimeOptions": {
"configProperties": {
"System.Drawing.EnableUnixSupport": true
}
}
}
Unix desteğini programatik olarak etkinleştirmek için kodunuzun başına aşağıdaki kodu ekleyin:
// 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'nin piyasaya sürülmesiyle, Microsoft, Linux ve macOS'ta System.Drawing.Common için desteği tamamen kaldırarak geçici çözümü kaldırdı.
Iron Software, System.Drawing.Common için IronSoftware.Drawing adlı bir açık kaynak yerine geçiş sağlamıştır. Bunu NuGet ve GitHub'da bulabilirsiniz.
Daha fazla bilgi almak için belge sayfasını ziyaret edebilirsiniz: Iron Software Drawing Documentation

