System.Drawing.Common-Alternativen (.NET 7 & Nicht-Windows)
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.
- NuGet-Paket
Um mehr zu erfahren, besuchen Sie dieoffizielle Dokumentation