Alternatywy dla System.Drawing.Common (.NET 7 i systemy inne niż Windows)

This article was translated from English: Does it need improvement?
Translated
View the article in English

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)
$vbLabelText   $csharpLabel

.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ę.

Curtis Chau
Autor tekstów technicznych

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ę...

Czytaj więcej
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 18,926,724 | Wersja: 2026.5 just released
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu? PM > Install-Package IronPdf
Uruchom przykład i zobacz, jak Twój kod HTML zamienia się w plik PDF.