System.Drawing.Common Alternatives (.NET 7 & Non-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オペレーティングシステムでは、内部例外として PlatformNotSupportedException を伴う TypeInitializationException がスローされます。 プラットフォームアナライザーは非Windowsプラットフォームに対してコンパイル時警告を発します。 以下のランタイム例外は、設定オプションを設定しない限りスローされます:

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

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

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

runtimeconfig.json ファイルで System.Drawing.EnableUnixSupport ランタイム設定スイッチを true に設定して非Windowsプラットフォームのサポートを有効にします:

{
    "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);
' 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
テクニカルライター

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

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

準備はいいですか?
Nuget ダウンロード 16,154,058 | バージョン: 2025.11 ただ今リリースされました