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

已引用System.Drawing仍无法使用Bitmap,报CS0246错误求助

解决CS0246:找不到“Bitmap”类型或命名空间的问题

嘿,我太懂这种明明做了该做的步骤却还是报错的崩溃感了!你已经加了using System.Drawing也引用了程序集,却还是碰到CS0246找不到Bitmap的错误,给你几个我亲测有效的排查方向:

  • 先看项目的目标框架版本:如果是.NET Core、.NET 5及以上的项目,System.Drawing已经不是框架自带的组件了——你得去NuGet包管理器里搜索并安装System.Drawing.Common这个包才行,安装完再重新编译试试,大概率能解决。
  • 确认程序集引用真的生效了:有时候看起来引用了,实际可能是版本不对或者没加载成功。右键你的项目→「管理NuGet程序包」,看看System.Drawing.Common是不是在「已安装」列表里;如果是.NET Framework项目,要确认引用的是系统自带的System.Drawing.dll(路径一般是C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\vX.X\System.Drawing.dll),别不小心引用了其他同名的第三方dll。
  • 核对using语句的拼写:别笑,有时候手滑真的会写错!比如把System.Drawing写成System.Draw,或者大小写搞错了,仔细看一眼代码里的using指令,确保没拼写错误。
  • 清理缓存再重建项目:VS的缓存偶尔会抽风,右键解决方案→「清理解决方案」,然后右键项目→「生成」,甚至重启一下VS,很多时候缓存导致的奇怪报错这样操作后就消失了。
  • 如果是跨平台项目的特殊情况:要是你在Linux或macOS上跑.NET Core/.NET 5+的项目,System.Drawing.Common从.NET 6开始默认不支持这些平台了。如果非要用,得在你的项目文件(.csproj)里加一段配置:
    <PropertyGroup>
      <!-- 强制指定Windows运行时,适合只在Windows上部署的项目 -->
      <RuntimeIdentifier>win-x64</RuntimeIdentifier>
      <!-- 或者开启Unix支持,不过这个配置在.NET 6+里是过时的,仅作临时方案 -->
      <EnableUnixSupport>true</EnableUnixSupport>
    </PropertyGroup>
    
    长远来看,更推荐用跨平台的图像处理库比如ImageSharp,但如果只是要解决当前的报错,先试试上面的配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:12:45