System.Drawing is not supported on this platform

在跨平台编程中很有可能会遇到一些库执行不正确的问题,比如,我在用NuGet引入库的时候就遇到了类似问题。我引入System.Drawing.Common.dll到UWP工程中,编码的时候并没有报错,但是运行时就出错了:System.Drawing is not supported on this platform

刚开始的时候,我以为是我引入的方式不对,检查后没有什么问题。网上有人说是自动引入出了问题,手动引入了C:\Users\用户名\.nuget\packages\system.drawing.common\4.7.0\runtimes\win\lib\netcoreapp2.0,问题就解决了。对此就我个人观点并不赞同!我感觉这个首先要看你创建的是什么样的工程不是?你创建一个.net core的工程,这样处理,可能能运行。我这里创建的是一个UWP的工程,这就有点牵强。而且这里直接引用的是runtime相关的,总觉得哪里不对啊。

最后我在官方网站上查到,UWP目前根本就不支持System.Drawing这个命名空间,而System.Drawing在程序集System.Drawing.Common.dll中,所以要使用System.Drawing就需要引入这个程序集。但是UWP平台它不支持呀,这样一点毛病都没有了!

要解决问题就要么需求第三方库的支持,要么自己架构一个中间层,完成类似功能。就我所知,目前暂时没有完美的解决方案。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章