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 ein TypeInitializationException mit einem 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 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 unter Linux und macOS vollständig eingestellt, einschließlich der zuvor verfügbaren Problemumgehung.
Iron Software hat einen Open-Source-Ersatz für System.Drawing.Common namens IronSoftware.Drawing veröffentlicht.
Für weitere Informationen besuchen Sie die offizielle Dokumentation.

