使用 IronOCR 在本地计算机上调试 Azure Functions
This article was translated from English: Does it need improvement?
TranslatedView the article in English
本地运行 Azure 时出现问题
遇到此问题时常见的例外情况包括:
部署 IronOcr 的 Tesseract 时出错
- 无法找到"libtesseract-5"
- 无法找到"libtesseract-5"
- 未能找到 Tesseract-5
- 在 \bin\runtimes\win-x64\native\IronOCR.Native.deployment.json 处查找部署配置文件时出错
- IronOcr:缺少"EnglishBest"的 .traineddata 文件,该文件应位于:
本地运行 Azure Functions 时的依赖问题
在本地使用 Azurite (VS2022) 或 Azure Storage Emulator (VS2019) 运行 Azure 时,会创建一个额外的 bin 目录,存储模拟器用于部署。 只有 DLL 文件被复制到此目录,因此需要额外文件的软件将无法运行,并可能抛出上述异常。
您可以通过将 runtimes 目录复制到存储模拟器使用的单独 bin 目录中来解决此问题。 我们建议在本地运行时,将此操作作为构建后事件执行(有关说明,请参见下文)(因为重新编译/构建会将 bin 目录恢复到其原始状态)。 部署到云端时,你将不会遇到此问题。
- 问题: 本地运行 Azure 函数项目时,它会创建一个额外的 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 "$(TargetDir)runtimes" "$(TargetDir)bin\runtimes" /S /E /Y /I /R /DXCOPY "$(TargetDir)runtimes" "$(TargetDir)bin\runtimes" /S /E /Y /I /R /DSHELL-解释:
XCOPY用于复制文件和目录树。$(TargetDir)runtimes是运行时文件最初编译的源目录。$(TargetDir)bin\runtimes是应用程序在本地运行时运行时文件的目标目录。- 选项:
/S复制目录和子目录,但不包括空目录和子目录。/E复制所有子目录,包括空子目录。/Y表示不确认是否覆盖现有文件。/I如果目标位置不存在且要复制多个文件,则假定目标位置必须是一个目录。/R会覆盖只读文件。/D仅复制目标位置较新或缺失的文件。

准备开始了吗?
Nuget 下载 5,299,091 | 版本: 2025.12 刚刚发布






