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
Na systemach operacyjnych innych niż Windows, TypeInitializationException jest wyrzucany z PlatformNotSupportedException jako wyjątkiem wewnętrznym. 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 wykonania 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).NET 7 i wyżej
Począwszy od .NET 7, Microsoft całkowicie usunął obsługę System.Drawing.Common na Linux i macOS, w tym wcześniej dostępne obejście.
Iron Software wydał otwartoźródłowy zamiennik dla System.Drawing.Common, nazwany IronSoftware.Drawing.
Aby dowiedzieć się więcej, odwiedź oficjalną dokumentację.

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podręczników.