IronBarcode - Alternative to System.Drawing.Common

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

Iron Software hat einen Open-Source-Ersatz für System.Drawing.Common namens IronDrawing. Um mehr über IronDrawing zu erfahren, klicken Sie hier.

Ab .NET 6 wird System.Drawing.Common nur noch auf Windows funktionieren.

  • In nicht-Windows-Betriebssystemen wird, es sei denn, Sie setzen einen Laufzeitkonfigurationsschalter, eine TypeInitializationException Ausnahme mit PlatformNotSupportedException als innere Ausnahme ausgelöst.
  • In .NET 6 gibt der Plattformanalysator Kompilierungsfehlerwarnungen aus, wenn referenzierter Code für nicht-Windows-Betriebssysteme kompiliert wird. Zusätzlich wird die folgende Laufzeitausnahme ausgelöst, es sei denn, Sie setzen eine Konfigurationsoption:
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()

Vorübergehende Lösung: Aktivieren Sie die Unterstützung für Nicht-Windows-Plattformen, indem Sie den Laufzeitschalter System.Drawing.EnableUnixSupport in der Datei runtimeconfig.json auf true setzen:

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

Diese Lösung ist die aktuelle Lösung von Microsoft für System.Drawing-Unterstützung in .NET 6: https://docs.microsoft.com/en-us/dotnet/core/compatibility/core-libraries/6.0/system-drawing-common-windows-only

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen
Bereit anzufangen?
Nuget Downloads 1,935,276 | Version: 2025.11 gerade veröffentlicht