System.Drawing.Common-Alternativen (.NET 7 & Nicht-Windows)
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 innere 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 System.Drawing.EnableUnixSupport-Laufzeitkonfigurationsschalter auf true in der runtimeconfig.json-Datei 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)
.NET 7 und höher
Ab .NET 7 hat Microsoft die Unterstützung für System.Drawing.Common auf 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 herausgebracht, der IronSoftware.Drawing genannt wird.
Für weitere Informationen besuchen Sie die offizielle Dokumentation.

