因为要做一个APP扫码登录PC站点的功能,找了几个 .NetCore 中生成二维码的方案。
几年前在 .NetFramework 下做过生成二维码的功能,用的 ThoughtWorks.QRCode ,不过它不支持 .NetCore。而且我要跑在 Docker 里,所以光支持 .NetCore 不行,还要支持 linux。搜 ThoughtWorks.QRCode 的时候,看到有人做了 Core 版的移植了。但是看它引用了 System.Drawing.Common 就觉得有点悬。然后试了下,做了个示例的 Mvc 站点,直接F5启动没问题,放Docker 里不出图片。
然后继续找其他的方案。搜到一篇文章推荐的 SkiaSharp 和 ZXing.Net,按照说明做示例站点,本地跑起没问题,放Docker里还报错,根据提示进Docker 装了几个 dll ,重启发现没有用。
然后换个思路,觉得使用了 System.Drawing 的应该都不行,.NetCore下的图形库应该用 ZKWeb.System.Drawing,然后百度了下“ZKWeb.System.Drawing 二维码”,果然发现有人用它解决了二维码的问题。
下面是示例项目开发过程:
1,建立 Web Mvc 应用程序项目,我建立的 Net Core 3.0的项目,2.2 2.1的应该一样。
2,Nuget 包管理器里边引用 ZXing.Net.Bindings.ZKWeb.System.Drawing。
3,建立 CodeHelper 类,名称不重要,输入以下代码。
public