System.Drawing.Commonの代替(.NET 7および非Windows)

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

.NET 6 から、Microsoft は Linux および macOS での System.Drawing.Common のサポートを停止しました。 このライブラリは今後、Windows でのみ動作します。 詳細については、公式ドキュメントを参照してください。

"このプラットフォームでは System.Drawing.Common はサポートされていません"エラーを回避するための回避策

.NET 6

Windows 以外のオペレーティング システムでは、内部例外として TypeInitializationException がスローされ、 PlatformNotSupportedException がスローされます。 プラットフォームアナライザーは非Windowsプラットフォームに対してコンパイル時警告を発します。 以下のランタイム例外は、設定オプションを設定しない限りスローされます:

System.TypeInitializationException : 'Gdip' の型イニシャライザーが例外をスローしました。

    ---- System.PlatformNotSupportedException : 非Windowsプラットフォームでは System.Drawing.Common はサポートされていません。

.NET 6 の一時的な回避策:

Windows 以外のプラットフォームのサポートを有効にするには、runtimeconfig.json ファイルで System.Drawing.EnableUnixSupport ランタイム構成スイッチを true に設定します。

{
    "runtimeOptions": {
        "configProperties": {
            "System.Drawing.EnableUnixSupport": true
        }
    }
}

さらに、設定をプログラムで有効にするためにコードの始めに以下の行を追加します:

// Enable System.Drawing.Common support on non-Windows platforms in .NET 6
System.AppContext.SetSwitch("System.Drawing.EnableUnixSupport", true);
// Enable System.Drawing.Common support on non-Windows platforms in .NET 6
System.AppContext.SetSwitch("System.Drawing.EnableUnixSupport", true);
$vbLabelText   $csharpLabel

.NET 7 およびそれ以降

.NET 7 以降、Microsoft は、以前利用可能だった回避策を含め、Linux および macOS 上の System.Drawing.Common のサポートを完全に削除しました。

Iron Software は、System.Drawing.Common のオープンソース代替品である IronSoftware.Drawing をリリースしました。

詳細は 公式ドキュメントを参照してください。

カーティス・チャウ
テクニカルライター

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

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

準備はできましたか?
Nuget ダウンロード 17,803,474 | バージョン: 2026.3 リリース
Still Scrolling Icon

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

すぐに証拠が欲しいですか? PM > Install-Package IronPdf
サンプルを実行するHTML が PDF に変換されるのを確認します。