使用 IronOCR 在本地机器上调试 Azure 函数
在本地运行Azure时遇到的问题
常见的异常包括:
- 为 IronOcr 部署 Tesseract 时出错
- 查找 "libtesseract-5 "失败
- 无法找到 libtesseract-5
- 未能找到宇宙魔方-5
- 在 \bin\runtimes\win-x64\native\IronOcr.Native.deployment.json 查找部署配置文件时出错
- IronOcr:缺少位于的 'EnglishBest' .traineddata 文件
在本地运行Azure Functions时遇到的依赖问题
在本地运行 Azure 时,使用 Azurite(VS2022)或 Azure 存储模拟器(VS2019)在存储模拟器用于部署时会创建一个额外的bin目录。 只有 DLL 文件被复制到这个目录,所以需要额外文件的软件将无法运行,并可能抛出上述异常。
您可以通过将 runtimes 目录复制到存储模拟器使用的单独 bin 目录中来解决此问题。 我们建议将此作为后期构建事件进行处理(见下说明)本地运行时(因为重新编译/构建会将 bin 目录恢复到原始状态). 部署到云端时,您不会遇到此问题。
- 问题:在本地运行Azure Function项目时,它会创建一个额外的_bin_文件夹,并在该文件夹中运行函数。 但是,它没有将所有必要的文件复制到所述的_bin_文件夹中。
- 示例:一个位于 C:\code\azure-functions-test 的项目,构建路径为 C:\code\azure-functions-test\bin\Debug\netcoreapp3.1。
- 解决方案:将 C:\code\azure-functions-test\bin\Debug\netcoreapp3.1\runtimes 目录复制到 C:\code\azure-functions-test\bin\Debug\netcoreapp3.1\bin 中,使其在那里也存在。
如果提示,请覆盖任何现有文件。
生成后事件:
右键单击 Azure Functions 项目,选择属性.
向下滚动到事件部分
输入一个后期构建事件
XCOPY "$(目标目录)运行时" "$(目标目录)bin/runtimes" /S /E /Y /I /R /D