在本地機器上使用 IronOCR 偵錯 Azure Functions
常見的異常情況包括:
- 部署Tesseract至IronOCR時出錯
- 找不到 '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 /D