# 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:
```txt
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.
[[w:(El fallback imprime sin un cuadro de diálogo. Los usuarios no ven aviso de impresión en objetivos no compatibles, por lo que no dependas de que se muestre el cuadro de diálogo a menos que apunte a un marco de UI.)]]
### 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:
```xml
<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.
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 TargetFrameworkse.g. net462; net472; net7.0-windows; net7.0-macos; net7.0-maccatalyst; net7.0-android)'
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)'
Text
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.
Advertencia: El fallback imprime sin un cuadro de diálogo. Los usuarios no ven aviso de impresión en objetivos no compatibles, por lo que no dependas de que se muestre el cuadro de diálogo a menos que apunte a un marco de UI.
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:
Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien estructurados y visualmente atractivos.