首页 > 解决方案 > 错误无法使用 .Net Core 3.1 在 Ubuntu 上加载文件或程序集 Tesseract

问题描述

我在 dotnetcore 3.1 项目上使用 Tesseract 版本 4.1.1,它在 Windows 上完美运行,但是当我在 ubuntu 上发布它时,它会在这一行引发以下错误

new TesseractEngine(Tessdatapath, LanguageCode, EngineMode.TesseractAndLstm);

Could not load file or assembly 'Tesseract, Version=4.1.1.0, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.

我将 x64 和 x86 dll 与发布文件一起复制并确保它们与 tessdata 处于同一级别

我尝试在 ubuntu 上安装 tesseract 并将 .so 文件复制到 x64 和 x86 文件夹中,但仍然没有运气

标签: c#linuxasp.net-coretesseract

解决方案


所以这就是我修复它的方法

事实证明,系统没有显示正确的错误消息,因为它无法使用 Linux 不支持的库 System.Drawing.Common。

通过使用 libgdiplux 修复了 System.Drawing.Common 的 Linux 实现

sudo apt-get -f install libgdiplus

然后它显示了正确的消息,即

Failed to find library "libleptonica-1.80.0.so" for platform x64.

为了解决这个问题,我必须从这里编译这个 leptonica 版本http://www.leptonica.org/download.html

这帮助我编译它 http://www.leptonica.org/source/README.html

所以现在我已经安装了“libleptonica-1.80.0.so”,我在我的 x64 文件夹中创建了指向 leptonica 文件的链接,遵循这条评论Tesseract 问题 #503


推荐阅读