需求
netcore平台下,生成二维码~
过程
nuget包:
调用接口:
[Routing(EHttpMethod.HttpGet, "app/codes")] public CommonResult<string> CreteCodes(string id) { string strCode = "http://www.walys.com"; QRCodeGenerator qrGenerator = new QRCoder.QRCodeGenerator(); QRCodeData qrCodeData = qrGenerator.CreateQrCode(strCode, QRCodeGenerator.ECCLevel.Q); QRCode qrcode = new QRCode(qrCodeData); // qrcode.GetGraphic 方法可参考最下发“补充说明” System.Drawing.Bitmap qrCodeImage = qrcode.GetGraphic(5, System.Drawing.Color.Black, System.Drawing.Color.White, null, 15, 6, false); qrCodeImage.Save(@"G:\Users\344343\Desktop\test\3.jpg", System.Drawing.Imaging.ImageFormat.Jpeg); return ""; }
报错:
System.Drawing is not supported on this platform。
问题分析
遇到这个问题,我就分析问题:
1.我的 System.Drawing 不支持netcore?这个不能啊,官方是不支持System.Drawing,但是我引用的是官方新类库:System.Drawing.Common
2.QRCoder,引用了netcore 不支持的System.Drawing====》这个网上一大堆使用netcore平台开发二维码的,都是使用的QRCoder开发的。
3.怀疑人生~~~~~~
问题发现
第二天,发现新建一个netcore webapi项目,引用项目完全可以生成二维码。
这样就看publish包。发现除了好几个包。但是还有比较小的包。
发现项目中使用的就是小的包。
难道是这里有问题?为啥子是好几个版本的包呢?
后来手动把publish处理的dll拷贝到部署目录。调用接口~~~~妥妥的!!!
大家又遇到这种情况么?
msgSystem.Drawing is not supported on this platform【netcore】