IronPrint의 ShowPrintDialog 동작 (2024.9 이후)
ShowPrintDialog 및 ShowPrintDialogAsync는 지원되지 않는 타겟 프레임워크에서 호출될 때 더 이상 예외를 발생시키지 않습니다. 버전 2024.9부터 이들은 경고를 기록하고 대신 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()로 라우팅되며, 예외는 발생하지 않습니다. 기존 코드는 충돌 없이 계속 실행되지만 인쇄 대화 상자는 표시되지 않습니다.
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>
이러한 프레임워크 중 하나가 있는 경우 ShowPrintDialog 및 ShowPrintDialogAsync는 예상대로 대화 상자를 표시합니다.

