Alternativas comunes a System.Drawing.Common (.NET 7 y versiones que no son Windows)

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

A partir de .NET 6, Microsoft ha dejado de soportar System.Drawing.Common en Linux y macOS. Esta biblioteca ahora solo funcionará en Windows. Para más detalles, consulte la documentación oficial.

Soluciones para evitar el error "System.Drawing.Common no es compatible con esta plataforma"

.NET 6

En sistemas operativos no-Windows, se lanza una TypeInitializationException con una PlatformNotSupportedException como excepción interna. El analizador de plataforma emite advertencias de tiempo de compilación para plataformas no-Windows. La siguiente excepción de tiempo de ejecución se lanza a menos que configure una opción de configuración:

System.TypeInitializationException : El inicializador de tipo para 'Gdip' lanzó una excepción.

    ---- System.PlatformNotSupportedException : System.Drawing.Common no es compatible con plataformas no-Windows.

Resolución temporal en .NET 6:

Habilite el soporte para plataformas no-Windows estableciendo el interruptor de configuración de tiempo de ejecución System.Drawing.EnableUnixSupport a true en el archivo runtimeconfig.json:

{
    "runtimeOptions": {
        "configProperties": {
            "System.Drawing.EnableUnixSupport": true
        }
    }
}

Además, agregue la siguiente línea al inicio de su código para habilitar la configuración programáticamente:

// 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 y superior

A partir de .NET 7, Microsoft ha eliminado completamente el soporte para System.Drawing.Common en Linux y macOS, incluyendo la solución alternativa previamente disponible.

Iron Software ha lanzado un reemplazo de código abierto para System.Drawing.Common, llamado IronSoftware.Drawing.

Para saber más, visite la documentación oficial.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más
¿Listo para empezar?
Nuget Descargas 17,012,929 | Versión: 2025.12 recién lanzado