.NET Framework项目引用.NET Standard版Aspose.Drawing.dll编译报错求助
问题原因分析
.NET Standard是一套API规范而非具体运行时实现,不同目标框架对它的API兼容逻辑和底层实现存在差异:
- .NET Framework默认依赖系统自带的
System.Drawing.dll(基于GDI+的传统实现),这套实现和.NET Standard规范定义的System.DrawingAPI存在类型匹配差异。Aspose.Drawing的.NET Standard版本基于.NET Standard的System.Drawing抽象构建,直接引用到.NET Framework项目时就会出现类型找不到的编译错误。 - .NET Standard项目本身没有内置
System.Drawing实现,会自动依赖符合.NET Standard规范的System.Drawing.CommonNuGet包,类型匹配自然正常,不会报错。
解决方案
要让.NET Framework项目也能正常使用Aspose.Drawing的.NET Standard版本DLL,按以下步骤操作:
- 显式安装
System.Drawing.CommonNuGet包:在.NET Framework项目中执行命令:
安装后项目会优先使用这套符合.NET Standard规范的Install-Package System.Drawing.CommonSystem.Drawing实现,和Aspose.Drawing的依赖对齐,解决Color类型找不到的问题。 - 确认.NET Framework版本达标:
System.Drawing.Common要求.NET Framework 4.6.1及以上版本,若项目版本低于此,需先升级目标框架版本。 - 更新Aspose.Drawing到最新版:使用Aspose.Drawing的最新稳定版本,新版本通常修复了更多跨框架兼容的细节问题。
内容的提问来源于stack exchange,提问作者Mohammad Javad Salehi
相关产品推荐
相关产品推荐

