IRONSOFTWAREHOME

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

Curtis Chau
Curtis Chau
Updated: 9 de maio de 2026

Soluções alternativas para evitar "System.Drawing.Common não é suportado nesta plataforma"

  1. A implementação de System.Drawing.Common não é possível em plataformas Linux e macOS para .NET 6 e .NET 7.
  2. Você receberá uma mensagem de exceção indicando "System.Drawing.Common não é suportado nesta plataforma."
  3. Defina a configuração de runtime System.Drawing.EnableUnixSupport para true for .NET 6.
  4. Note que o suporte não está mais disponível no .NET 7.
  5. Use a biblioteca de código aberto IronSoftware.Drawing para substituir System.Drawing.Common no .NET 7.

No .NET 6 e .NET 7, a Microsoft parou de suportar System.Drawing.Common em Linux e macOS. A biblioteca só funcionará em plataformas Windows conforme a documentação oficial.

  • Em sistemas operacionais não Windows, um TypeInitializationException é lançado com PlatformNotSupportedException como exceção interna.
  • No .NET 6, o analisador de plataforma emite avisos de tempo de compilação quando o código que faz referência a System.Drawing.Common é compilado para sistemas operacionais não Windows. Além disso, a seguinte exceção de runtime é lançada, a menos que uma opção de configuração seja definida:
System.TypeInitializationException : The type initializer for 'Gdip' threw an exception. --- System.PlatformNotSupportedException : System.Drawing.Common is not supported on non-Windows platforms.
Text

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

Habilite suporte para plataformas não Windows configurando o interruptor de configuração de runtime System.Drawing.EnableUnixSupport para true no arquivo runtimeconfig.json:

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

Adicione o seguinte código ao início do seu código para habilitar programaticamente o suporte a Unix:

// Enables Unix support for System.Drawing in .NET 6. This setting is ignored in .NET 7.
System.AppContext.SetSwitch("System.Drawing.EnableUnixSupport", true);

.NET 7

Com o lançamento do .NET 7, a Microsoft removeu a solução alternativa, removendo completamente o suporte para System.Drawing.Common no Linux e macOS.

A Iron Software lançou uma substituição de código aberto para System.Drawing.Common, chamada IronSoftware.Drawing. Você pode encontrá-la no NuGet e no GitHub.

Para saber mais, você pode acessar a página de documentação: Documentação de Desenho do Iron Software

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 bem estruturados e visualmente atraentes.

...
Leia mais

Pronto para começar?

Nuget Downloads 6,262,020Versão:2026.9recém-lançado

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.
Key in blue circle

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.

Your trial license will be sent to your email address

Sem limitações. 100% desbloqueado. Sem cartão de crédito.

OR
bullet_checkedNão é necessário cartão de crédito nem criação de conta.Sem limitações. 100% desbloqueado. Sem cartão de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
Agende sua demonstração ao vivo gratuita.
Booking Badge

Aprovado por milhões de engenheiros em todo o mundo.

Logotipos dos clientes da Iron Software
Agende sua consulta sem compromisso.
Preencha o formulário abaixo ou envie um e-mail para sales@ironsoftware.com
Os seus dados serão sempre mantidos em sigilo.
Aprovado por milhões de engenheiros em todo o mundo.
Logotipos dos clientes da Iron Software
Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.