IronPrintでのShowPrintDialogの動作 (ポスト2024.9)

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

サポートされていないターゲットフレームワークで呼び出されたとき、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>
XML

これらのフレームワークのいずれかがあると、ShowPrintDialogAsyncが期待通りにダイアログを表示します。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

準備はできましたか?
Nuget ダウンロード 44,051 | バージョン: 2026.7 リリースされたばかり
Still Scrolling Icon

まだスクロールしていますか?

すぐに証拠が欲しいですか? PM > Install-Package IronPrint
サンプルを実行する プリンターに出力されるドキュメントを見る。