System.Drawing.Common Alternatives (.NET 7 & Non-Windows)

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

Ab .NET 6 hat Microsoft die Unterstützung von System.Drawing.Common unter Linux und macOS eingestellt. Diese Bibliothek wird nun nur noch unter Windows funktionieren. Weitere Details finden Sie in der offiziellen Dokumentation.

Umgehungen zur Vermeidung des Fehlers "System.Drawing.Common wird auf dieser Plattform nicht unterstützt"

.NET 6

Auf nicht-Windows-Betriebssystemen wird eine TypeInitializationException mit einer PlatformNotSupportedException als innerer Ausnahme ausgelöst. Der Plattformanalysator gibt zur Kompilierungszeit Warnungen für Nicht-Windows-Plattformen aus. Die folgende Laufzeitausnahme wird ausgelöst, es sei denn, Sie setzen eine Konfigurationsoption:

System.TypeInitializationException : Der Typeninitialisierer für 'Gdip' hat eine Ausnahme ausgelöst.

    ---- System.PlatformNotSupportedException : System.Drawing.Common wird auf Nicht-Windows-Plattformen nicht unterstützt.

Vorübergehende Lösung in .NET 6:

Aktivieren Sie die Unterstützung für Nicht-Windows-Plattformen, indem Sie den Konfigurationsschalter System.Drawing.EnableUnixSupport zur Laufzeit in der runtimeconfig.json-Datei auf true setzen:

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

Fügen Sie außerdem die folgende Zeile am Anfang Ihres Codes hinzu, um die Konfiguration programmgesteuert zu aktivieren:

// Enable System.Drawing.Common support on non-Windows platforms in .NET 6
System.AppContext.SetSwitch("System.Drawing.EnableUnixSupport", true);
// Enable System.Drawing.Common support on non-Windows platforms in .NET 6
System.AppContext.SetSwitch("System.Drawing.EnableUnixSupport", true);
' Enable System.Drawing.Common support on non-Windows platforms in .NET 6
System.AppContext.SetSwitch("System.Drawing.EnableUnixSupport", True)
$vbLabelText   $csharpLabel

.NET 7 und höher

Ab .NET 7 hat Microsoft die Unterstützung für System.Drawing.Common unter Linux und macOS sowie die zuvor verfügbare Umgehung vollständig entfernt.

Iron Software hat einen Open-Source-Ersatz für System.Drawing.Common veröffentlicht, genannt IronSoftware.Drawing.

Für weitere Informationen besuchen Sie die offizielle Dokumentation.

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 16,154,058 | Version: 2025.11 gerade veröffentlicht