IronPrintでのShowPrintDialogの動作 (ポスト2024.9)
サポートされていないターゲットフレームワークで呼び出されたとき、ShowPrintDialogAsyncはもはや例外をスローしません。 バージョンPrintAsync()にフォールバックします。
この変更以前は、互換性のないTargetFrameworkでいずれかのメソッドを呼び出すと次のエラーが発生しました。
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)'
ダイアログメソッドはUIコンポーネントが必要であり、.NET Coreまたは.NET Standardターゲットでは利用できません。 以前のビルドはこれを厳しい失敗と見なし、投げました。 実行時に例外が破壊的だったため、2024.9で意図的に動作が変更されました。
解決策
フォールバックは自動ですが、適切なターゲットを選択することでどのパスを実行するかを制御できます。
1. 自動フォールバックに依存する
サポートされていないフレームワークでは、呼び出しは警告をログし、スローする代わりにPrintAsync()にルートされます。 既存のコードはクラッシュすることなく実行され続けますが、印刷ダイアログは表示されません。
フォールバックはダイアログなしで印刷されます。 ユーザーはサポートされていないターゲットで印刷プロンプトを見ないので、UIフレームワークをターゲットにしない限りダイアログが表示されることを前提としないでください。
2. ダイアログに対応するUIが可能なフレームワークをターゲットにする
実際の印刷ダイアログを表示するには、UIサポートを含むOS固有のターゲットに対してビルドします:
<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>
これらのフレームワークのいずれかがあると、ShowPrintDialogAsyncが期待通りにダイアログを表示します。

