System.Drawing.Common Alternatifleri (.NET 7 ve Windows dışı)

This article was translated from English: Does it need improvement?
Translated
View the article in English

"System.Drawing.Common bu platformda desteklenmiyor" u Önlemek İçin Geçici Çözümler

  1. System.Drawing.Common uygulaması, .NET 6 ve .NET 7 için Linux ve macOS platformlarında mümkün değildir.
  2. "System.Drawing.Common bu platformda desteklenmiyor" belirten bir istisna mesajı alacaksınız.
  3. .NET 6 için System.Drawing.EnableUnixSupport çalışma zamanı yapılandırmasını true olarak ayarlayın.
  4. Desteğin .NET 7'de artık mevcut olmadığını unutmayın.
  5. .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, PlatformNotSupportedException iç istisnası ile TypeInitializationException istisnası 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)
$vbLabelText   $csharpLabel

.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

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 5,896,332 | Sürüm: 2026.5 just released
Still Scrolling Icon

Hâlâ Kaydırıyor Musunuz?

Hızlıca kanıt ister misiniz? PM > Install-Package IronOcr
örnek çalıştır görüntünüzün aranabilir metin haline gelmesini izleyin.