IronPrint on macOS with .NET 8 (Apple Silicon)
IronPrint documents native cross-platform support for Windows, macOS, iOS, and Android via its IronSoftware.System.Drawing dependency. If you hit build or runtime errors running IronPrint in a .NET 8 console app on Apple Silicon macOS, verify your TargetFramework and print API usage against the guidance below before assuming a missing-library issue.
Solution
1. Target a UI-Capable Framework When Showing a Print Dialog
ShowPrintDialog/ShowPrintDialogAsync require a UI-capable target framework to render the dialog. If you only need to send a document to a printer without a dialog, Printer.Print/Printer.PrintAsync do not have this requirement.
<TargetFramework>net7.0-maccatalyst</TargetFramework>
<TargetFramework>net7.0-maccatalyst</TargetFramework>
net7.0-macos or net7.0-maccatalyst is not part of the default console app templates. Install the corresponding workload or start from a macOS/Mac Catalyst app template to get preconfigured support. See ShowPrintDialog Behavior in IronPrint for the full list of supported target frameworks.A complete project file looks like this:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net7.0-maccatalyst</TargetFramework>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net7.0-maccatalyst</TargetFramework>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>
2. Use a Compatible Print API
On macOS, call Printer.ShowPrintDialogAsync(string, PrintSettings) (or the byte[] overload) rather than relying on Windows-only printing paths:
var settings = new PrintSettings();
await Printer.ShowPrintDialogAsync(filePath, settings);
var settings = new PrintSettings();
await Printer.ShowPrintDialogAsync(filePath, settings);
Dim settings As New PrintSettings()
Await Printer.ShowPrintDialogAsync(filePath, settings)

