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

Curtis Chau
Curtis Chau
Updated: 2026年9月17日

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

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

.NET 6

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

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

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

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

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

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

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

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

.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は現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

詳しく読む

準備はできましたか?

Nuget Downloads 21,916,531バージョン:2026.11リリースされたばかり