Alternatywy dla System.Drawing.Common (.NET 7 i systemy inne niż Windows)
Począwszy od .NET 6, Microsoft przestał wspierać System.Drawing.Common na Linux i macOS. Ta biblioteka będzie teraz działać tylko na Windows. Aby uzyskać więcej szczegółów, odnieś się do oficjalnej dokumentacji.
Ominięcia błędu 'System.Drawing.Common is not supported on this platform'
.NET 6
W systemach operacyjnych innych niż Windows generowany jest wyjątek TypeInitializationException z wyjątkiem wewnętrznym PlatformNotSupportedException. Analizator platformy generuje ostrzeżenia w czasie kompilacji dla platform innych niż Windows. Zgłaszany jest następujący wyjątek wykonawczy, chyba że ustawiona jest opcja konfiguracji:
System.TypeInitializationException: Inicjalizator typu 'Gdip' zgłosił wyjątek.
---- System.PlatformNotSupportedException: System.Drawing.Common nie jest wspierany na platformach innych niż Windows.
Tymczasowe obejście w .NET 6:
Włącz obsługę platform innych niż Windows, ustawiając przełącznik konfiguracji środowiska uruchomieniowego System.Drawing.EnableUnixSupport na true w pliku runtimeconfig.json:
{
"runtimeOptions": {
"configProperties": {
"System.Drawing.EnableUnixSupport": true
}
}
}
Dodatkowo, dodaj następującą linię na początku swojego kodu, aby programowo włączyć konfigurację:
// 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 i wyżej
Począwszy od .NET 7, firma Microsoft całkowicie wycofała obsługę System.Drawing.Common w systemach Linux i macOS, w tym wcześniej dostępne obejście.
Firma Iron Software wydała otwartą wersję zamiennika biblioteki System.Drawing.Common, o nazwie IronSoftware.Drawing.
Aby dowiedzieć się więcej, odwiedź oficjalną dokumentację.

