Alternativas para System.Drawing.Common (.NET 7 e sistemas não Windows)

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

A partir do .NET 6, a Microsoft deixou de oferecer suporte ao System.Drawing.Common no Linux e no macOS. Esta biblioteca agora só funcionará no Windows. Para obter mais detalhes, consulte a documentação oficial .

Soluções alternativas para evitar o erro "System.Drawing.Common não é compatível com esta plataforma"

.NET 6

Em sistemas operacionais não Windows, um TypeInitializationException é lançado com um PlatformNotSupportedException como a exceção interna. O analisador de plataforma emite avisos em tempo de compilação para plataformas que não sejam Windows. A seguinte exceção de tempo de execução será lançada, a menos que você defina uma opção de configuração:

System.TypeInitializationException: O inicializador de tipo para 'Gdip' gerou uma exceção.

    ---- System.PlatformNotSupportedException: System.Drawing.Common não é compatível com plataformas que não sejam Windows.

Solução alternativa temporária no .NET 6:

Ative o suporte para plataformas não Windows configurando o switch de configuração de tempo de execução System.Drawing.EnableUnixSupport para true no arquivo runtimeconfig.json:

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

Além disso, adicione a seguinte linha no início do seu código para habilitar a configuração programaticamente:

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

A partir do .NET 7, a Microsoft removeu completamente o suporte para System.Drawing.Common no Linux e macOS, incluindo a solução alternativa anteriormente disponível.

A Iron Software lançou uma substituição de código aberto para System.Drawing.Common, chamada IronSoftware.Drawing.

Para saber mais, consulte a documentação oficial .

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais
Pronto para começar?
Nuget Downloads 18,318,263 | Versão: 2026.4 acaba de ser lançado
Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas? PM > Install-Package IronPdf
executar um exemplo Veja seu HTML se transformar em um PDF.