System.Drawing.Common-Alternativen (.NET 7 & Nicht-Windows)
Workarounds zur Umgehung von system.drawing.common wird auf dieser Plattform nicht unterstützt
Die Implementierung von System.drawing.common ist auf Linux und MacOs Plattform für .NET6 und .NET7 nicht möglich
Ausnahmemeldung von system.drawing.common wird auf dieser Plattform nicht unterstützt abrufen
Setzen Sie die System.Drawing.EnableUnixSupport-Laufzeitkonfiguration für .NET6 auf true
Unterstützung auch in .NET7 nicht mehr verfügbar
Verwendung der Open-Source-Bibliothek IronSoftware.Drawing als Ersatz für System.Drawing.Common für NET7
In .NET6 und .NET7 hat Microsoft die Unterstützung von Linux und MacOs eingestellt, undSystem.Drawing.Common funktioniert nur unter Windows.
- Auf Nicht-Windows-Betriebssystemen wird eine TypeInitializationException-Ausnahme mit PlatformNotSupportedException als innere Ausnahme ausgelöst.
- In .NET 6 gibt der Plattformanalysator Kompilierzeitwarnungen aus, wenn referenzierender Code für Nicht-Windows-Betriebssysteme kompiliert wird. Außerdem wird die folgende Laufzeitausnahme 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übergehende Abhilfe in .NET6:
Aktivieren Sie die Unterstützung für Nicht-Windows-Plattformen, indem Sie den System.Drawing.EnableUnixSupport-Laufzeitkonfigurationsschalter 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
Mit der Veröffentlichung von .NET7 hat Microsoft die Umgehungslösung abgeschafft und die Unterstützung für System.Drawing.Common in Linux und MacOs vollständig entfernt.
Iron Software hat einen Open-Source-Ersatz für System.Drawing.Common veröffentlicht, IronSoftware.Drawing. [NuGet] [GitHub]
Weitere Informationen:https://ironsoftware.com/open-source/csharp/drawing/docs/