IronPrint on macOS with .NET 8 (Apple Silicon)
Executar IronPrint em um aplicativo de console .NET 8 no macOS Apple Silicon pode falhar na hora da compilação com bibliotecas nativas ausentes, e Printer.GetPrinterNamesAsync() lança em tempo de execução.
System.PlatformNotSupportedException: System.Drawing.Common is not supported on this platform.
O macOS não vem com libgdiplus, a implementação GDI+ da qual IronPrint e System.Drawing dependem, e um destino net8.0 simples nunca habilita as APIs de plataforma específicas do macOS. Ambas as lacunas precisam ser fechadas.
Solução
1. Instale a Biblioteca Nativa GDI+
Instale libgdiplus através do Homebrew para que o suporte GDI+ que o Windows fornece por padrão esteja disponível no macOS:
brew install mono-libgdiplus
brew install mono-libgdiplus
Sem esta biblioteca, System.Drawing não tem backend nativo para chamar.
2. Direcione ao Framework do macOS
Aponte seu .csproj ao framework de destino específico do macOS em vez de um net8.0 simples:
<TargetFramework>net8.0-macos</TargetFramework>
<TargetFramework>net8.0-macos</TargetFramework>
Isso diz ao .NET para usar as APIs de plataforma do macOS em vez dos stubs multiplataforma.
net8.0-macos não faz parte dos templates padrão de aplicativos de console. Instale a carga de trabalho macOS ou comece a partir de um template de aplicativo macOS para obter suporte pré-configurado.Um arquivo de projeto completo se parece com isso:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0-macos</TargetFramework>
<Nullable>enable</Nullable>
<UseSystemDrawing>true</UseSystemDrawing>
</PropertyGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0-macos</TargetFramework>
<Nullable>enable</Nullable>
<UseSystemDrawing>true</UseSystemDrawing>
</PropertyGroup>
</Project>
3. Use uma API de Impressão Compatível
No macOS, chame ShowPrintDialogAsync() para operações de impressão em vez de depender de caminhos de impressão apenas para Windows.

