IronBarcode - Alternative zu 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.

  • Auf Nicht-Windows-Betriebssystemen wird, sofern kein Laufzeitkonfigurationsschalter gesetzt ist, eine TypeInitializationException-Ausnahme mit PlatformNotSupportedException als innerer 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 Problemumgehung: Aktivieren Sie die Unterstützung für Nicht-Windows-Plattformen, indem Sie den Laufzeitkonfigurationsschalter 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 2,121,847 | Version: 2026.3 gerade veröffentlicht
Still Scrolling Icon

Scrollst du immer noch?

Sie brauchen schnell einen Beweis? PM > Install-Package BarCode
Führen Sie ein Beispiel aus und beobachten Sie, wie Ihre Zeichenkette zu einem BarCode wird.