在本地機器上調試 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 模擬器 (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 資料夾中
  • 在提示時覆蓋任何現有檔案

發布構建事件:

  1. 右鍵點擊 Azure Functions 專案,選擇屬性

  2. 滾動到事件部分

  3. 輸入構建後事件 XCOPY "$(目標目錄)運行時" "$(目標目錄)bin/runtimes" /S /E /Y /I /R /D`