System.Drawing.Common Alternatives (.NET 7 & Non-Windows)

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

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

</p

1.System.Drawing.Commonの実装は、.NET 6と.NET 7のLinuxとmacOSプラットフォームではできません。 2."System.Drawing.Commonはこのプラットフォームではサポートされていません。"という例外メッセージが表示されます。 3..NET 6では、System.Drawing.EnableUnixSupportランタイム構成をtrueに設定してください。 4.なお、.NET 7でのサポートは終了しています。 5..NET 7のSystem.Drawing.Commonを置き換えるために、IronSoftware.Drawingオープンソースライブラリを使用してください。

.NET 6と.NET 7では、MicrosoftはLinuxとmacOSでのSystem.Drawing.Commonのサポートを停止しました。 ライブラリは、公式ドキュメントのとおり、Windowsプラットフォームでのみ動作します。

  • Windows 以外のオペレーティング システムでは、TypeInitializationException が、PlatformNotSupportedException を内部例外としてスローされます。
  • .NET 6 では、System.Drawing.Common を参照するコードが Windows 以外のオペレーティング システム用にコンパイルされると、プラットフォーム アナライザがコンパイル時に警告を発します。 さらに、設定オプションが設定されない限り、次の実行時例外がスローされます:
System.TypeInitializationException : The type initializer for 'Gdip' threw an exception. --- System.PlatformNotSupportedException : System.Drawing.Common is not supported on non-Windows platforms.

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

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

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

Unixサポートをプログラムで有効にするために、次のコードをコードの先頭に追加してください:

// Enables Unix support for System.Drawing in .NET 6. This setting is ignored in .NET 7.
System.AppContext.SetSwitch("System.Drawing.EnableUnixSupport", true);
// Enables Unix support for System.Drawing in .NET 6. This setting is ignored in .NET 7.
System.AppContext.SetSwitch("System.Drawing.EnableUnixSupport", true);
' Enables Unix support for System.Drawing in .NET 6. This setting is ignored in .NET 7.
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をリリースしました。 You can find it on NuGet and GitHub.

詳しくは、ドキュメントのページをご覧ください:IronSoftware Drawing ドキュメントをご覧ください。

Curtis Chau
テクニカルライター

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

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

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