System.Drawing.Common Alternativen – OCR Software Texterkennung auf .NET 7 und Linux
Umgehungslösungen, um 'System.Drawing.Common wird auf dieser Plattform nicht unterstützt' zu vermeiden
- Die Implementierung von System.Drawing.Common ist auf Linux- und macOS-Plattformen for .NET 6 und .NET 7 nicht möglich.
- Sie erhalten eine Fehlermeldung, die besagt, dass 'System.Drawing.Common auf dieser Plattform nicht unterstützt wird.'
- Setzen Sie die Laufzeitkonfiguration System.Drawing.EnableUnixSupport auf true for .NET 6.
- Beachten Sie, dass der Support in .NET 7 ebenfalls nicht mehr verfügbar ist.
- Verwenden Sie die Open-Source-Bibliothek IronSoftware.Drawing, um System.Drawing.Common for .NET 7 zu ersetzen.
In .NET 6 und .NET 7 hat Microsoft die Unterstützung von System.Drawing.Common auf Linux und macOS eingestellt. Die Bibliothek funktioniert nur auf Windows-Plattformen gemäß der offiziellen Dokumentation.
Auf Nicht-Windows-Betriebssystemen wird eine TypeInitializationException-Ausnahme mit PlatformNotSupportedException als innerer Ausnahme ausgelöst.
- In .NET 6 gibt der Plattform-Analyzer zur Kompilierzeit Warnungen aus, wenn Code, der System.Drawing.Common referenziert, für nicht-Windows-Betriebssysteme kompiliert wird. Zusätzlich wird die folgende Laufzeitausnahme ausgelöst, es sei denn, eine Konfigurationsoption ist gesetzt:
System.TypeInitializationException : The type initializer for 'Gdip' threw an exception. --- System.PlatformNotSupportedException : System.Drawing.Common is not supported on non-Windows platforms.
Vorübergehende Umgehung 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 den folgenden Code am Anfang Ihres Codes hinzu, um die Unix-Unterstützung programmgesteuert zu aktivieren:
// Enables Unix support for System.Drawing in .NET 6. This setting is ignored in .NET 7.
System.AppContext.SetSwitch("System.Drawing.EnableUnixSupport", true);
// Enables Unix support for System.Drawing in .NET 6. This setting is ignored in .NET 7.
System.AppContext.SetSwitch("System.Drawing.EnableUnixSupport", true);
' Enables Unix support for System.Drawing in .NET 6. This setting is ignored in .NET 7.
System.AppContext.SetSwitch("System.Drawing.EnableUnixSupport", True)
.NET 7
Mit der Veröffentlichung von .NET 7 hat Microsoft die Umgehungslösung entfernt und die Unterstützung für System.Drawing.Common auf Linux und macOS vollständig entfernt.
Iron Software hat einen Open-Source-Ersatz für System.Drawing.Common namens IronSoftware.Drawing veröffentlicht. Sie können es auf NuGet und GitHub finden.
Um mehr zu erfahren, können Sie die Dokumentationsseite besuchen: Iron Software Drawing Dokumentation

