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平臺它不支持呀,這樣一點毛病都沒有了!

要解決問題就要麼需求第三方庫的支持,要麼自己架構一箇中間層,完成類似功能。就我所知,目前暫時沒有完美的解決方案。

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