首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Tesseract OCR软件时未在Linqpad中找到异常的dll

使用Tesseract OCR软件时未在Linqpad中找到异常的dll
EN

Stack Overflow用户
提问于 2015-12-07 09:57:56
回答 1查看 1.2K关注 0票数 2

我试图在Linqpad中使用Linqpad OCR软件。我采取了以下步骤:

1)我使用

https://code.google.com/p/tesseract-ocr/downloads/detail?name=tesseract-ocr-setup-3.02.02.exe&

2)我在Linqpad中添加了一个通过nuget对Tesseract的引用,确切地说是以下包:一个用于tesseract-ocr的.Net包装器

3)我在PATH变量中添加了Tesseract二进制文件的路径,其中还包含两个本机dll库。

4)我安装了Visual x86 & x64运行时,如

https://github.com/charlesw/tesseract/wiki/Error-2

但是,当我试图在tesseract中使用Linqpad时,会出现以下错误:

DllNotFoundException:未能为平台x86找到库"liblept168.dll“

我认为这个问题与如何在Linqpad中使用native dll有关。

我怎样才能解决这个问题?

EN

回答 1

Stack Overflow用户

发布于 2020-12-19 23:29:10

LINQpad和Tesseract nuget包之间的不兼容性是由于InteropDotNet库在运行时加载本机程序集的方式造成的。

您可以将以下方法添加到添加了Tesseract nuget包的LINQpad查询中,并且应该允许InteropDotNet库找到它需要的本机程序集。

代码语言:javascript
复制
static void CopyTessLibraries(string tessVersion, string platform)
    {
        var destFolder = Path.Combine(Environment.CurrentDirectory,platform);
    
        Directory.CreateDirectory(destFolder);
    
        var tessNugetFolder = new LINQPad.ObjectModel.NuGetReference("Tesseract")
                                    .GetPackageFolders()
                                    .First(folderName => folderName.Contains($@"Tesseract\{tessVersion}"));
    
        var platformFiles = Directory.GetFiles(Path.Combine(tessNugetFolder,platform));
        foreach (var file in platformFiles)
        {
            var fileInfo = new FileInfo(file);
            var destFile = Path.Combine(destFolder, fileInfo.Name);
            if (!File.Exists(destFile))
            {
                fileInfo.CopyTo(destFile, true);
            }
        }
    }

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34130764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档