IronOCR OCR 프로그램을 사용하여 로컬 머신에서 Azure Functions 디버깅하기
Azure를 로컬에서 실행할 때 발생하는 문제
이 문제가 발생할 때 흔히 나타나는 예외 사항은 다음과 같습니다.
- IronOCR 용 Tesseract 배포 중 오류 발생
- 'libtesseract-5'를 찾을 수 없습니다.
- 'libtesseract-5'를 찾을 수 없습니다.
- 테서랙트-5를 찾지 못했습니다
- \bin\runtimes\win-x64\native\ IronOCR 에서 배포 구성 파일을 찾는 중 오류가 발생했습니다.
- IronOCR: 'EnglishBest'에 대한 .traineddata 파일이 누락되었습니다. 해당 파일은 다음 위치에 있어야 합니다.
Azure Functions를 로컬에서 실행할 때 종속성 관련 문제 발생
Azure를 로컬에서 실행할 때 Azurite(VS2022) 또는 Azure Storage Emulator(VS2019)를 사용하면 Storage Emulator가 배포에 사용하는 추가 bin 디렉터리가 생성됩니다. 이 디렉터리에는 DLL 파일만 복사되므로 추가 파일이 필요한 소프트웨어는 작동하지 않거나 위와 같은 예외가 발생할 수 있습니다.
이 문제를 해결하려면 런타임 디렉토리를 스토리지 에뮬레이터에서 사용하는 별도의 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은 새로운 파일이나 목적지에 없는 파일만 복사합니다.
- 설명:


