Depurando IronOCR para Converter Imagem em Texto em Azure Functions Localmente
Problemas ao executar a leitura de texto do Azure localmente
As exceções comuns observadas ao se deparar com esse problema são:
- Erro ao implantar o Tesseract para IronOCR
- Falha ao localizar 'libtesseract-5'
- Não foi possível localizar 'libtesseract-5'
- Falha ao localizar o Tesseract-5
- Erro ao localizar o arquivo de configuração de implantação em \bin\runtimes\win-x64\native\ IronOCR
- IronOCR: Arquivo .traineddata ausente para 'EnglishBest', que deveria estar localizado em
Problema com dependências ao executar o Azure Functions localmente
Ao executar o Azure localmente, usando o Azurite (VS2022) ou o Emulador de Armazenamento do Azure (VS2019), um diretório bin adicional é criado e usado pelo Emulador de Armazenamento para a implantação. Somente os arquivos DLL são copiados para este diretório, portanto, softwares que exigem arquivos adicionais não funcionarão e poderão gerar a exceção acima.
Você pode resolver esse problema copiando o diretório de tempos de execução para o diretório bin separado usado pelo Emulador de Armazenamento. Recomendamos realizar isso como um evento pós-compilação (veja as instruções abaixo) ao executar localmente (pois a recompilação/compilação retornará o diretório bin ao seu estado original). Você não encontrará esse problema ao implantar na nuvem.
Problema: Ao executar um projeto do Azure Functions localmente, é criada uma pasta bin adicional, a partir da qual a função é executada. No entanto, ele não copia todos os arquivos necessários para a pasta bin mencionada. Exemplo: Um projeto em C:\code\azure-functions-test que é compilado para C:\code\azure-functions-test\bin\Debug\netcoreapp3.1
- Solução: Copie o diretório C:\code\azure-functions-test\bin\Debug\netcoreapp3.1\runtimes para que ele também exista dentro de C:\code\azure-functions-test\bin\Debug\netcoreapp3.1\bin
- Sobrescrever quaisquer arquivos existentes, se solicitado.

Etapas do evento pós-construção
- Clique com o botão direito do mouse no projeto do Azure Functions e selecione Propriedades.
- Desça a página até a seção Eventos.
-
Insira um comando de evento pós-compilação que copiará todos os arquivos necessários para o diretório correto:
XCOPY "$(TargetDir)runtimes" "$(TargetDir)bin\runtimes" /S /E /Y /I /R /DXCOPY "$(TargetDir)runtimes" "$(TargetDir)bin\runtimes" /S /E /Y /I /R /DSHELL- Explicação:
XCOPYé usado para copiar arquivos e árvores de diretórios.$(TargetDir)runtimesé o diretório de origem onde os arquivos de runtime são inicialmente compilados.$(TargetDir)bin\runtimesé o diretório de destino para os arquivos de runtime quando a aplicação é executada localmente.- Opções:
/Scopia diretórios e subdiretórios, exceto os vazios./Ecopia todos os subdiretórios, incluindo os vazios./Ysuprime a confirmação para sobrescrever arquivos existentes./Ise o destino não existir e estiver copiando mais de um arquivo, assume que o destino deve ser um diretório./Rsobrescreve arquivos de somente leitura./Dcopia apenas arquivos que são mais novos ou que estão faltando no destino.
- Explicação:


