macOSにおけるIronPrintと.NET 8 (Apple Silicon)

Curtis Chau
Curtis Chau
Updated: 2026年6月29日

Apple Silicon macOS上で.NET 8コンソールアプリでIronPrintを実行すると、ビルド時にネイティブライブラリが欠落していて失敗し、Printer.GetPrinterNamesAsync()がランタイムでスローされることがあります。

System.PlatformNotSupportedException: System.Drawing.Common is not supported on this platform.
Text

macOSには、IronPrintとnet8.0ターゲットはmacOS専用のプラットフォームAPIを有効にしません。これらのギャップは埋める必要があります。

解決策

1. ネイティブGDI+ライブラリをインストールする

Homebrewを通じてlibgdiplusをインストールし、Windowsがデフォルトで提供するGDI+サポートをmacOSで利用可能にします:

brew install mono-libgdiplus
SHELL

このライブラリがないと、System.Drawingは呼び出すためのネイティブバックエンドがありません。

2. macOS Frameworkをターゲットにする

通常の.csprojを向けます:

<TargetFramework>net8.0-macos</TargetFramework>
XML

これは.NETにクロスプラットフォームのスタブではなくmacOSのプラットフォームAPIを使用させます。

コマンドラインテンプレートには一部にnet8.0-macosが含まれていません。 macOSワークロードをインストールするか、macOSアプリアプリケーションテンプレートから開始して事前設定されたサポートを得ることができます。

完全なプロジェクトファイルはこのように見えます:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net8.0-macos</TargetFramework>
    <Nullable>enable</Nullable>
    <UseSystemDrawing>true</UseSystemDrawing>
  </PropertyGroup>
</Project>
XML

3. 互換性のある印刷APIを使用する

macOSでは、Windows専用の印刷パスに依存せずにShowPrintDialogAsync()を印刷操作のために呼び出します。

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

詳しく読む

準備はできましたか?

Nuget Downloads 49,171バージョン:2026.11リリースされたばかり