在本地機器上使用IronOCR偵錯Azure Functions
This article was translated from English: Does it need improvement?
Translated
View 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時的依賴性問題
在本地運行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 /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 下載 6,136,090 | 版本: 2026.7 剛剛發布

