Verhalten der ShowPrintDialog in IronPrint (Post-2024.9)
ShowPrintDialog und ShowPrintDialogAsync werfen keine Ausnahme mehr, wenn sie auf einem nicht unterstützten Ziel-Framework aufgerufen werden. Ab Version 2024.9 loggen sie eine Warnung und fallen stattdessen auf PrintAsync() zurück.
Vor dieser Änderung führte der Aufruf einer der Methoden ohne ein kompatibles TargetFramework zu folgendem Fehler:
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)'
Die Dialogmethoden benötigen eine UI-Komponente, die unter einfachen .NET Core- oder .NET Standard-Zielen nicht verfügbar ist. Frühere Builds sahen dies als harten Fehler an und warfen ihn. Die Ausnahme war zur Laufzeit störend, daher wurde das Verhalten absichtlich in 2024.9 geändert.
Lösung
Das Fallback ist automatisch, aber Sie können steuern, welche aufgerufen wird, indem Sie das richtige Ziel auswählen.
1. Verlassen Sie sich auf das Automatische Fallback
Auf einem nicht unterstützten Framework loggt der Aufruf jetzt eine Warnung und leitet zu PrintAsync() um, anstatt eine Ausnahme zu werfen. Vorhandener Code läuft weiter, ohne abzustürzen, obwohl kein Druckdialog erscheint.
2. Zielen Sie auf ein UI-fähiges Framework für den Dialog
Um den tatsächlichen Druckdialog zu erhalten, kompilieren Sie gegen ein OS-spezifisches Ziel, das UI-Unterstützung umfasst:
<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>
Mit einem dieser Frameworks zeigen ShowPrintDialog und ShowPrintDialogAsync den Dialog wie erwartet an.

