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

Bu platformda 'System.Drawing.Common desteklenmiyor'dan kaçınmak için Çevresel Çözüm Yolları

  1. System.Drawing.Common uygulaması .NET 6 ve .NET 7 için Linux ve macOS platformlarında mümkün değildir.
  2. "Bu platformda System.Drawing.Common 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. .NET 7'de de desteğin artık mevcut olmadığını unutmayın.
  5. IronSoftware.Drawing açık kaynaklı kütüphanesini, .NET 7 için System.Drawing.Common yerine kullanın.

.NET 6 ve .NET 7'de, Microsoft Linux ve macOS üzerinde System.Drawing.Common desteğini durdurdu. Kütüphane sadece resmi belgelere göre Windows platformlarında çalışacaktır.

  • Windows dışı işletim sistemlerinde, TypeInitializationException, iç istisna olarak PlatformNotSupportedException ile fırlatılır.
  • .NET 6'da, platform analizcisi, System.Drawing.Common referanslı kodları Windows dışı işletim sistemleri için derlendiğinde derleme zamanında uyarılar verir. Ayrıca, bir yapılandırma seçeneği ayarlanmamışsa, 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 çalışma zamanı yapılandırma anahtarını true olarak ayarlayarak Windows dışı platformlar için desteği etkinleştirin runtimeconfig.json dosyasında:

{
  "runtimeOptions": {
    "configProperties": {
      "System.Drawing.EnableUnixSupport": true
    }
  }
}

Unix desteğini programatik olarak etkinleştirmek için kodunuzun başına şu 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 yayınlanmasıyla birlikte, Microsoft geçici çözümleri kaldırarak Linux ve macOS üzerinde System.Drawing.Common desteğini tamamen kaldırdı.

Iron Software, System.Drawing.Common için IronSoftware.Drawing adlı bir açık kaynaklı yedek yayınladı. NuGet ve GitHub üzerinde bulabilirsiniz.

Daha fazla bilgi almak için, dökümantasyon sayfasını ziyaret edebilirsiniz: IronSoftware Drawing Dökümantasyonu

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında lisans derecesine sahiptir (Carleton Üniversitesi) ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirme üzerine uzmanlaşmıştır. Kullanıcı dostu ve estetik açıdan hoş arayüzler tasarlamaya tutkuyla bağlı olan Curtis, modern çerç...

Daha Fazlasını Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 5,585,834 | Sürüm: 2026.4 just released
Still Scrolling Icon

Hala Kaydiriyor musunuz?

Hızlı bir kanit mi istiyorsunuz? PM > Install-Package IronOcr
örnekleri çalıştır resminizin aranabilir metne donuşünü izleyin.