Debuggen von Azure Functions auf dem lokalen Rechner mit IronOCR
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 unter folgendem Pfad liegen sollte
Problem mit Abhängigkeiten beim Ausführen von Azure Functions 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 Verzeichnisbäumen verwendet.$(TargetDir)runtimesist das Quellverzeichnis, in dem Laufzeitdateien zunächst kompiliert werden.$(TargetDir)bin\runtimesist das Zielverzeichnis für Laufzeitdateien, wenn die Anwendung lokal ausgeführt wird.
- Optionen:
/Skopiert Verzeichnisse und Unterverzeichnisse, mit Ausnahme leerer Verzeichnisse./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 bei dem Ziel um ein Verzeichnis handeln muss./Rüberschreibt schreibgeschützte Dateien./Dkopiert nur Dateien, die neuer sind oder im Zielverzeichnis fehlen.
- Erklärung:


