Azure Functions lokal debuggen – OCR Software Texterkennung Probleme beheben
Probleme beim lokalen Ausführen von Azure
Häufige Ausnahmen, die bei diesem Problem auftreten, sind:
- Fehler beim Bereitstellen von Tesseract für IronOcr
- 'libtesseract-5' konnte nicht gefunden werden
- 'libtesseract-5' kann nicht gefunden werden
- 'Tesseract-5' konnte nicht gefunden werden
- Fehler beim Suchen der Bereitstellungskonfigurationsdatei unter \bin\runtimes\win-x64\native\IronOcr.Native.deployment.json
- IronOcr: Fehlende .traineddata-Datei für 'EnglishBest', die sich befinden sollte unter
Problem mit Abhängigkeiten beim Ausführen von Azure-Funktionen lokal
Beim lokalen Ausführen von Azure mit Azurite (VS2022) oder dem Azure Storage Emulator (VS2019) wird ein zusätzliches Bin-Verzeichnis erstellt, das der Storage Emulator für die Bereitstellung nutzt. Nur DLL-Dateien werden in dieses Verzeichnis kopiert, sodass Software, die zusätzliche Dateien erfordert, nicht funktioniert und die oben genannte Ausnahme auslösen kann.
Sie können dieses Problem beheben, indem Sie das Runtimes-Verzeichnis in das separate Bin-Verzeichnis kopieren, das vom Storage Emulator verwendet wird. Wir empfehlen dies als Post-Build-Ereignis zu tun (siehe unten für Anweisungen), wenn es lokal ausgeführt wird (da durch erneutes Kompilieren/Bauen das Bin-Verzeichnis in seinen ursprünglichen Zustand zurückkehren wird). Dieses Problem werden Sie nicht haben, wenn Sie in die Cloud bereitstellen.
- Problem: Beim lokalen Ausführen eines Azure-Funktion-Projekts wird ein zusätzliches bin-Verzeichnis erstellt, aus dem es die Funktion ausführt. Es kopiert jedoch nicht alle erforderlichen Dateien in dieses bin-Verzeichnis.
- Beispiel: Ein Projekt unter C:\code\azure-functions-test, das nach C:\code\azure-functions-test\bin\Debug\netcoreapp3.1 gebaut wird
- Lösung: Kopieren Sie das Verzeichnis C:\code\azure-functions-test\bin\Debug\netcoreapp3.1\runtimes, sodass es auch innerhalb von C:\code\azure-functions-test\bin\Debug\netcoreapp3.1\bin existiert
- Dateien überschreiben, wenn aufgefordert.

Schritte für das Post-Build-Ereignis
- Klicken Sie mit der rechten Maustaste auf das Azure Functions-Projekt und wählen Sie Eigenschaften.
- Scrollen Sie nach unten zum Bereich Ereignisse.
-
Geben Sie einen Post-Build-Ereignisbefehl ein, der alle erforderlichen Dateien in das richtige Verzeichnis kopiert:
XCOPY "$(TargetDir)runtimes" "$(TargetDir)bin\runtimes" /S /E /Y /I /R /DXCOPY "$(TargetDir)runtimes" "$(TargetDir)bin\runtimes" /S /E /Y /I /R /DSHELL- Erklärung:
XCOPYwird zum Kopieren von Dateien und Verzeichnisstrukturen verwendet.$(TargetDir)runtimesist das Quellverzeichnis, in dem die Laufzeitdateien initial kompiliert werden.$(TargetDir)bin\runtimesist das Zielverzeichnis für Laufzeitdateien, wenn die Anwendung lokal ausgeführt wird.
- Optionen:
/Skopiert Verzeichnisse und Unterverzeichnisse, außer leere./Ekopiert alle Unterverzeichnisse, einschließlich leerer./Yunterdrückt die Bestätigung zum Überschreiben vorhandener Dateien./IWenn das Ziel nicht existiert und mehr als eine Datei kopiert wird, wird davon ausgegangen, dass es sich beim Ziel um ein Verzeichnis handeln muss./Rüberschreibt schreibgeschützte Dateien./Dkopiert nur Dateien, die neuer sind oder im Zielverzeichnis fehlen.
- Erklärung:


