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 在此平台上不支援」的變通方法。

1.對於 .NET 6 和 .NET 7,在 Linux 和 macOS 平台上無法實作 System.Drawing.Common。 2.您將收到異常訊息,顯示 「System.Drawing.Common 不支援此平台」。 3.將 .NET 6 的 System.Drawing.EnableUnixSupport 執行時組態設定為 true。 4.請注意,.NET 7 也不再提供支援。 5.使用 IronSoftware.Drawing 開源函式庫來取代 .NET 7 的 System.Drawing.Common

在 .NET 6 和 .NET 7 中,Microsoft 已停止支援 Linux 和 macOS 上的 System.Drawing.Common。 根據官方文件,該函式庫僅可在 Windows 平台上運作。

  • 在非 Windows 作業系統上,會產生 TypeInitializationExceptionPlatformNotSupportedException 作為內在異常。
  • 在 .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 中的臨時變通:

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。

準備好開始了嗎?
Nuget 下載 5,044,537 | 版本: 2025.11 剛剛發布