IronBarcode - System.Drawing.Common'a Alternatif

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

Iron Software, System.Drawing.Common için IronDrawing adında açık kaynaklı bir yedek sunmaktadır. IronDrawing hakkında daha fazla bilgi edinmek için buraya tıklayın.

.NET 6 ile birlikte, System.Drawing.Common yalnızca Windows üzerinde çalışacaktır.

  • Windows dışı işletim sistemlerinde, bir çalışma zamanı yapılandırma anahtarı ayarlamadığınız sürece, iç istisna olarak PlatformNotSupportedException ile TypeInitializationException istisnası oluşturulur.
  • .NET 6'da, platform analizörü, Windows dışı işletim sistemleri için kodu derlerken derleme zamanı uyarıları verir. Ek olarak, bir yapılandırma seçeneği ayarlamazsanız, 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. 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()

Geçici çözüm: runtimeconfig.json dosyasında System.Drawing.EnableUnixSupport çalışma zamanı yapılandırma anahtarını true olarak ayarlayarak Windows dışı platformlar için desteği etkinleştirin:

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

Bu çözüm, .NET 6'da System.Drawing desteği için Microsoft'un mevcut çözümüdür: https://docs.microsoft.com/en-us/dotnet/core/compatibility/core-libraries/6.0/system-drawing-common-windows-only

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 2,169,908 | Sürüm: 2026.4 just released
Still Scrolling Icon

Hala Kaydiriyor musunuz?

Hızlı bir kanit mi istiyorsunuz? PM > Install-Package BarCode
bir örnek çalıştırın dize barkod haline geldiğini görün.