System.Drawing.Commonの代替(.NET 7および非Windows)。
.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);.NET 7 およびそれ以降
.NET 7 から、Microsoft は Linux および macOS 上で System.Drawing.Common のサポートを完全に削除し、以前利用可能だった回避策も含めて廃止しました。
Iron Software は System.Drawing.Common のオープンソースの代替として、IronSoftware.Drawing をリリースしました。
詳細は 公式ドキュメントを参照してください。






