System.Drawing.Common-Alternativen (.NET 7 & Nicht-Windows)

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

Ab .NET6 hat Microsoft die Unterstützung von System.Drawing.Common unter Linux und macOS eingestellt. Diese Bibliothek funktioniert jetzt nur noch unter Windows. Weitere Einzelheiten finden Sie in deroffizielle Dokumentation.

Workarounds zur Umgehung von system.drawing.common wird auf dieser Plattform nicht unterstützt

.NET6

Auf Nicht-Windows-Betriebssystemen wird eine TypeInitializationException mit PlatformNotSupportedException als innere Ausnahme ausgelöst. Der Plattformanalysator gibt Kompilierzeitwarnungen für Nicht-Windows-Plattformen aus. Die folgende Laufzeitausnahme wird 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.

Vorübergehender Workaround in .NET6:

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

        }

    }

}

Fügen Sie den folgenden Code an den Anfang Ihres Codes:

System.AppContext.SetSwitch("System.Drawing.EnableUnixSupport", true);

.NET7 und höher

Ab .NET7 hat Microsoft die Unterstützung für System.Drawing.Common unter Linux und macOS vollständig entfernt, einschließlich des zuvor verfügbaren Workarounds.

Iron Software hat einen Open-Source-Ersatz für System.Drawing.Common mit dem Namen IronSoftware.Drawing veröffentlicht.