在 Powershell 中使用 Zxing.Net 的 QR 解码问题 - 找不到 "Decode" 的重载和参数计数:“1”

Issue with QR Decoding using Zxing.Net in Powershell - Cannot find an overload for "Decode" and the argument count: "1"

我正在尝试使用 Zxing.net (https://github.com/micjahn/ZXing.Net)

在 PowerShell 中解码二维码

此页面上有一个 HowTo,但我无法那样使用它: https://github.com/micjahn/ZXing.Net/wiki/Using-ZXing.Net-with-Powershell

每次我 运行 脚本时,我都会收到以下错误消息:

Cannot find an overload for "Decode" and the argument count: "1".
At C:\Users\ww\Desktop\reader.ps1:13 char:1
+ $result = $reader.Decode($bitmap)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodException
    + FullyQualifiedErrorId : MethodCountCouldNotFindBest

我的整个脚本是:

Add-Type -Path "C:\Users\ww\Desktop\zxing.net\lib\net45\zxing.dll"
$reader = New-Object -TypeName ZXing.BarcodeReader
$reader.Options.TryHarder=1
# set TryHarder option to true, other options can be set the same way
$bitmap = [System.Drawing.Bitmap]::FromFile("C:\Users\ww\Desktop\abc.bmp")
$result = $reader.Decode($bitmap)
$bitmap.Dispose()
$result.Text

我只从Java知道"overload",在这里我可以对同一个函数使用不同的参数,但在这种情况下对我来说没有任何意义(我不是一个非常有经验的程序员) .

有没有可能是我用错了.dll?我从 https://www.nuget.org/packages/ZXing.Net/0.16.5 下载了 Nuget-Package,然后通过 7-Zip 将其解压缩。我尝试了各种 .dll(net40、netcoreapp3.0、便携式、net20 等),但结果始终相同。

我还发现了这个 Github 线程,似乎很容易让一切正常工作。

任何人都可以提示我我的实现有什么问题吗? 谢谢!

原样的脚本应该可以正常工作。确保您使用的 .dll 适用于系统上安装的 .NET 的适当版本。例如,我有 .NET 4.8 版,所以我使用 .dll 作为可用的最高版本 4.7。我的文件路径是 C:\...\ZXing.Net.0.16.5.0\net4.7\zxing.dll .

Add-Type -Path "C:\Windows\System32\WindowsPowerShell\v1.0\Modules\Zxing\zxing.dll"
$reader = New-Object -TypeName ZXing.BarcodeReader
$reader.Options.TryHarder = 1 # set TryHarder option to true, other options can be set the same way
$bitmap = [System.Drawing.Bitmap]::FromFile("C:\Users\testUser\Pictures\QR.png")
$result = $reader.Decode($bitmap)
$bitmap.Dispose()
$result.Text

控制台输出:https://www.youtube.com/watch?v=oHg5SJYRHA0