Comportement de ShowPrintDialog dans IronPrint (Post-2024.9)
ShowPrintDialog et ShowPrintDialogAsync ne lancent plus d'exception lorsqu'ils sont appelés sur un framework cible non pris en charge. À partir de la version 2024.9, ils enregistrent un avertissement et se replient sur PrintAsync() à la place.
Avant ce changement, appeler l'une ou l'autre méthode sans un TargetFramework compatible générait l'erreur suivante :
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)'
Les méthodes de boîte de dialogue nécessitent un composant d'interface utilisateur, qui n'est pas disponible sous les cibles .NET Core ou .NET Standard simples. Les versions antérieures traitaient cela comme une défaillance sévère et déclenchaient une exception. L'exception était perturbatrice à l'exécution, donc le comportement a été changé délibérément dans 2024.9.
Solution
Le retour en arrière est automatique, mais vous pouvez contrôler quel chemin s'exécute en choisissant le bon target.
1. Comptez sur le retour en arrière automatique
Sur un framework non pris en charge, l'appel enregistre désormais un avertissement et se redirige vers PrintAsync() au lieu de déclencher une exception. Le code existant continue de s'exécuter sans planter, bien qu'aucune boîte de dialogue d'impression n'apparaisse.
2. Ciblez un framework capable d'interface utilisateur pour la boîte de dialogue
Pour obtenir la véritable boîte de dialogue d'impression, construisez contre une cible spécifique au système d'exploitation qui inclut le support de l'interface utilisateur :
<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>
Avec l'un de ces frameworks en place, ShowPrintDialog et ShowPrintDialogAsync affichent la boîte de dialogue comme prévu.

