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

Na systemach operacyjnych innych niż Windows, zgłaszany jest TypeInitializationException jako wewnętrzny wyjątek 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 wsparcie dla platform innych niż Windows, ustawiając przełącznik konfiguracji wykonawczej 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, Microsoft całkowicie usunął wsparcie dla System.Drawing.Common na Linux i macOS, w tym wcześniej dostępne obejście.

Iron Software wydało zamiennik open-source dla System.Drawing.Common, nazwany 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,135,201 | Wersja: 2026.4 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.