Comportamiento de ShowPrintDialog en IronPrint (Post-2024.9)

This article was translated from English: Does it need improvement?
Translated
View the article in English

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.

AdvertenciaEl 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.

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>
XML

Con uno de estos marcos en su lugar, ShowPrintDialog y ShowPrintDialogAsync muestran el cuadro de diálogo como se espera.

Curtis Chau
Escritor Técnico

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 ...

Leer más
¿Listo para empezar?
Nuget Descargas 44,051 | Versión: 2026.7 recién lanzado
Still Scrolling Icon

¿Aún desplazándote?

¿Quieres una prueba rápida? PM > Install-Package IronPrint
ejecuta una muestra observa cómo tu documento llega a la impresora.