c# - 错误无法使用 .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 文件夹中,但仍然没有运气
解决方案
所以这就是我修复它的方法
事实证明,系统没有显示正确的错误消息,因为它无法使用 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
推荐阅读
- android-studio - Android Studio (AS) 4.1 Kotlin Portrait to Landscaoe 不起作用
- ios - 如何打印一些数据值?[迅速]
- c# - 在 Visual Studio 2019 中调试 Blazor WebAssembly 代码隐藏文件时无法检查组件属性
- javascript - 如何避免 react-router-dom 中的重复名称?
- javascript - 将悬停转换为单击切换
- python - FastAPI 问题的依赖注入
- javascript - 我可以在 indexeddb 中丢失数据吗?
- sql - 在 BigQuery 中将字节转换为字符串
- objective-c - SDK中每个类的构造函数(用objective-c编写并通过桥接头导入swift)返回nil
- php - 运行测试时 Laravel RefreshDatabase 不起作用