-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Base64QRCode does not exist in 1.4.3 #361
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
|
Just use Convert.ToBase64String(qrCodeByte) |
use specific constructor, such as |
Hello @ScottyLightnin , this is not bug in QRCoder but more the consequence of breaking changes in Microsoft .NET 6.0. Explanation - Why are some renderers missingUp to QRCoder 1.4.2 there was no explicit compilation target for .NET6, thus when apps (that target .NET 6.0) used QRCoder, the package manager/Visual Studio picked the .NET 5.0 binaries when choosing the nearest framework binary. The .NET 5.0 binaries support Unfortunately not having .NET 6 as target in QRCoder lead to some serious trouble (see #354, #353) because not everything that works in .NET 5.0 also works in .NET 6.0 or in other words not all binaries/libraries to be available in .NET 5.0 can be expected available on .NET 6.0. Thus it was only consequent to add .NET 6.0 as target frameworks. I think you're right up to this point? With adding TL;DR: It was not my decision to remove the What can you do now?You have multiple options:
Mid-term solutionMid-term we will move QRCoder from |
Afterthought: I stand by the above changes. The only point where I can understand your displeasure @ScottyLightnin is that these (breaking) changes came with version 1.4.3 and not with a 2.0.0. It should be noted that the QRCoder has always increased the version number by one digit with each release (see here). According to strict/clean semantic versioning the 1.4.3 should have been a 2.0.0. I can see that. For the future (also with regard to QRCoder 2.X.X) I plan to increase the version numbers cleanly/according to semantic versioning. |
Great explanations, thank you @codebude , and yes, you got my main point was that I wasn't expecting a breaking change with the version change from 1.4.2 > 1.4.3. I've already been able to work around the problem (by targeting net6.0-windows), it was just unexpected since I've grown accustomed to semantic versioning. |
Having breaking changes in a minor patch seems strange to me to be honest, I had no idea why my code stopped working when I updated from 1.4.1 to 1.4.3. Otherwise great library! |
How to pass foreground and background now with PngByteQrCode when we get graphic? |
@mhosman either stick to QRCoder 1.4.2 since 1.4.3 added only the explicit targets to net 6.0 or wait for QRCoder 2.0.0 which will be based on ImageSharp and thus support the full renderer stack again. |
Any time frame for version 2.0 |
On thing that I don't understant.... I'm working with 1.4.1 and .Net Core 6 in docker, and as long as I use this:
Looks like If I use
|
@olmobrutall that works because you are using net5.0 not net6.0. So you just have to have libgdiplus installed in Linux and that's all. With version 1.4.3 you would get a runtime exception like seen here. |
@codebude Would you consider a PR that includes code from https://github.com/smack0007/ImageDotNet and integrates it into QRCoder? From what I can see by a glance at their code, it might be a good fallback for NET6 and PNG support. I know that ImageDotNet is no longer active, but if it works, it works. It is better than relying on much larger libraries like ImageSharp and SkiaSharp. |
I would stay away from ImageSharp as that library now has licensing fees in certain environments: A better alternative would be SkiaSharp or Magick.NET |
Great library. Can we expect aforementioned mid-term solution to replace the |
Type of issue
[x] Bug
[ ] Question (e.g. about handling/usage)
[ ] Request for new feature/improvement
Expected Behavior
No build errors after minor upgrade of 1.4.2 to 1.4.3
Current Behavior
Upgrading my nuget package dependency from 1.4.2 to 1.4.3 caused build errors in my project, because
Base64QRCode
could not be foundPossible Solution (optional)
Looks to be related to NET6_0_WINDOWS directives that have been added in this release
Steps to Reproduce (for bugs)
Your Environment
TargetOS of Web App: None.
By explicitly setting this to Windows, the compiler error is fixed, but this breaking change shouldn't be introduced in a patch level version change.
The text was updated successfully, but these errors were encountered: