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
Bei Nicht-Windows-Betriebssystemen wird eine TypeInitializationException-Ausnahme mit einer PlatformNotSupportedException-Ausnahme 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 Laufzeitkonfigurationsschalter System.Drawing.EnableUnixSupport in der Datei runtimeconfig.json 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)
.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 der zuvor verfügbaren Umgehungslösung.
Iron Software hat einen Open-Source-Ersatz für System.Drawing.Common veröffentlicht, der IronSoftware.Drawing heißt.
Für weitere Informationen besuchen Sie die offizielle Dokumentation.

