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

为何.NET Standard 2.0项目.resx导入.png生成byte[]而非System.Drawing.Bitmap

问题根因

  • .NET Standard 2.0作为跨平台基础类库规范,默认没有绑定Windows专有程序集System.Drawing的相关依赖,强类型资源生成器的默认策略会规避平台专属API依赖,所以将图片资源统一序列化为byte[]类型返回。而.NET Framework 4.8是Windows专属框架,内置GDI+组件支持,resx生成器默认会将图片资源映射为System.Drawing.Bitmap类型。
  • Visual Studio 2019针对.NET Standard项目的ResX代码生成器(ResXFileCodeGenerator/PublicResXFileCodeGenerator)默认采用跨平台适配逻辑,没有内置System.Drawing.Bitmap的类型自动解析规则,和.NET Framework项目的生成逻辑存在差异。

解决方案

如果你的.NET Standard资源类库仅面向.NET Framework 4.8等Windows专属平台消费,可以按以下步骤修改:

  1. 给当前.NET Standard 2.0项目安装NuGet包 System.Drawing.Common,选择和你消费端兼容的版本即可
  2. 打开.resx资源文件,选中对应的.png资源,在属性面板的「类型」选项中手动指定为System.Drawing.Bitmap,保存后重新生成项目,自动生成的资源属性就会返回Bitmap类型
  3. 如果需要批量修改,可以直接编辑.resx的XML源码,找到对应图片资源的<data>节点,补充type属性为:System.Drawing.Bitmap, System.Drawing.Common

注意:如果你的.NET Standard类库后续需要给.NET Core 3.0+、.NET 5+跨平台项目使用,System.Drawing.Common从.NET 6版本开始仅支持Windows平台,跨平台场景建议替换为ImageSharp等跨平台图像处理库。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 19:18:02