在本地機器上使用IronOCR偵錯Azure Functions
Curtis Chau
Updated: 2026年6月29日
本地運行Azure時的問題
當遇到此問題時常見的異常有:
- 部署IronOCR的Tesseract時出錯
- 無法找到'libtesseract-5'
- 無法找到'libtesseract-5'
- 無法找到Tesseract-5
- 在\bin\runtimes\win-x64\native\IronOcr.Native.deployment.json定位部署配置文件時出錯
- IronOCR:缺少'EnglishBest'的.traineddata檔案,應該位於
本地運行Azure Functions時的依賴性問題
在本地運行Azure時,使用Azurite (VS2022)或Azure Storage Emulator (VS2019),會建立一個額外的bin目錄,該目錄被Storage Emulator用於部署。 只有DLL文件會被複製到這個目錄中,因此需要額外文件的軟體將無法運行,可能會拋出上述異常。
您可以通過將runtimes目錄複製到Storage Emulator使用的獨立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 "$(TargetDir)runtimes" "$(TargetDir)bin\runtimes" /S /E /Y /I /R /DSHELL- 說明:
XCOPY用於複製文件和目錄樹。$(TargetDir)runtimes是運行時文件最初編譯的來源目錄。$(TargetDir)bin\runtimes是應用程式本地運行時運行時文件的目的地目錄。
- 說明:
- 選項:
/S複製目錄及其子目錄,但不包括空目錄。/E複製所有子目錄,包括空的。/Y抑制覆寫現有文件的確認。/I如果目的地不存在並且複製多於一個文件,假定目的地必須是目錄。/R覆寫只讀文件。/D僅複製較新或目的地中缺失的文件。


技術作家
Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。
...
閱讀更多