IronPrint on macOS with .NET 8 (Apple Silicon)
Ejecutar IronPrint en una aplicación de consola .NET 8 en macOS Apple Silicon puede fallar en el momento de la compilación debido a bibliotecas nativas faltantes, y Printer.GetPrinterNamesAsync() lanza en tiempo de ejecución.
System.PlatformNotSupportedException: System.Drawing.Common is not supported on this platform.
macOS no incluye libgdiplus, la implementación de GDI+ de la que IronPrint y System.Drawing dependen, y un objetivo net8.0 simple nunca habilita las API específicas de plataforma para macOS. Ambas brechas deben cerrarse.
Solución
1. Instalar la Biblioteca Nativa GDI+
Instale libgdiplus a través de Homebrew para que el soporte GDI+ que Windows proporciona por defecto esté disponible en macOS:
brew install mono-libgdiplus
brew install mono-libgdiplus
Sin esta biblioteca, System.Drawing no tiene un backend nativo al que llamar.
2. Apuntar al Framework de macOS
Dirige tu .csproj al marco específico de macOS en lugar de un simple net8.0:
<TargetFramework>net8.0-macos</TargetFramework>
<TargetFramework>net8.0-macos</TargetFramework>
Esto le dice a .NET que use las API de la plataforma macOS en lugar de los stubs multiplataforma.
net8.0-macos no es parte de las plantillas predeterminadas de aplicaciones de consola. Instale la carga de trabajo de macOS o comience desde una plantilla de aplicación de macOS para obtener soporte preconfigurado.Un archivo de proyecto completo se ve así:
<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 una API de Impresión Compatible
En macOS, llama a ShowPrintDialogAsync() para operaciones de impresión en lugar de depender de rutas de impresión exclusivas de Windows.

