You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Standard类库项目中无法使用System.Drawing类的原因及解决办法

问题原因
  • .NET Standard的基础类库默认不包含System.Drawing相关实现。System.Drawing最初是.NET Framework中基于Windows GDI+封装的图形API,没有被纳入.NET Standard的默认统一接口规范,因此新建.NET Standard类库时无法直接使用。
  • 后续官方将System.Drawing的实现拆分到了独立NuGet包中,未被项目默认引用,因此会出现类型找不到的编译错误。
  • 额外注意:System.Drawing.Common从.NET 6版本开始仅支持Windows系统,若项目需要跨Linux、macOS运行,使用该包会抛出平台不支持异常。
修复方案

方案1:引用官方System.Drawing.Common包(仅适用于Windows运行场景)

  1. 右键你的.NET Standard类库项目,选择「管理NuGet程序包」
  2. 搜索并安装System.Drawing.Common包,安装时注意选择和你项目.NET Standard版本兼容的包版本:
    • .NET Standard 2.0 支持4.5.0及以上版本的System.Drawing.Common
    • .NET Standard 2.1 支持5.0.0及以上版本
  3. 安装完成后重新生成项目,即可正常识别System.Drawing命名空间下的所有类型。

方案2:使用跨平台图形库(适用于需跨平台运行的场景)

如果你的类库需要支持跨Linux、macOS运行,推荐用跨平台兼容的图形库替代System.Drawing,以下两个库均原生支持.NET Standard:

  • SixLabors.ImageSharp:全托管跨平台图形库,无需依赖原生运行时,API设计贴合.NET开发者习惯,支持绝大多数常规图像处理操作
  • SkiaSharp:基于谷歌Skia图形引擎的.NET封装,性能优异,支持多平台渲染,功能覆盖更全面

内容的提问来源于stack exchange,提问作者Kermitaurus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 07:15:04