Comportamiento de ShowPrintDialog en IronPrint (Post-2024.9)
ShowPrintDialog y ShowPrintDialogAsync ya no lanzan una excepción cuando se llaman en un entorno de marco no compatible. A partir de la versión 2024.9, registran una advertencia y recurren a PrintAsync() en su lugar.
Antes de este cambio, invocar cualquiera de los métodos sin un TargetFramework compatible generaba el siguiente error:
System.AggregateException: 'One or more errors occurred.
(Please try Print/PrintAsync since ShowPrintDialog/ShowPrintDialogAsync in NET Core or NET Standard,
it required UI component so please set more specific OS TargetFrameworks
e.g. net462; net472; net7.0-windows; net7.0-macos; net7.0-maccatalyst; net7.0-android)'
Los métodos de diálogo necesitan un componente de UI, que no está disponible en los objetivos de .NET Core o .NET Standard simples. Las compilaciones anteriores trataban esto como un fallo grave y lanzaban una excepción. La excepción era disruptiva en tiempo de ejecución, por lo que el comportamiento fue cambiado deliberadamente en 2024.9.
Solución
El fallback es automático, pero puedes controlar qué camino se ejecuta eligiendo el objetivo correcto.
1. Confía en el Fallback Automático
En un marco no compatible, la llamada ahora registra una advertencia y redirige a PrintAsync() en lugar de lanzar una excepción. El código existente sigue funcionando sin un colapso, aunque no aparece cuadro de diálogo de impresión.
2. Apuntar a un Framework Compatible con UI para el Diálogo
Para obtener el cuadro de diálogo de impresión real, construye contra un objetivo específico del sistema operativo que incluya soporte para UI:
<TargetFrameworks>net462;net472;net7.0-windows;net7.0-macos;net7.0-maccatalyst;net7.0-android</TargetFrameworks>
<TargetFrameworks>net462;net472;net7.0-windows;net7.0-macos;net7.0-maccatalyst;net7.0-android</TargetFrameworks>
Con uno de estos marcos en su lugar, ShowPrintDialog y ShowPrintDialogAsync muestran el cuadro de diálogo como se espera.

