# Depurando Azure Functions localmente com o IronPDF
## Problemas ao executar o Azure localmente
Uma exceção comum vista ao encontrar esse problema é "Erro ao localizar arquivo de configuração de implantação IronPdf.Native.Chrome.deployment.json."
**Recomendado:** Execute Aplicativos de Função do Azure hospedados no Windows que visam .NET Core 3.1 `<TargetFramework>netcoreapp3.1</TargetFramework>`
**Requisito:** Utilize a configuração padrão **"em processo"** ao criar uma Função do Azure no Visual Studio. A versão mais recente do IronPDF oferece suporte a Azure Functions executadas "fora do processo" ou em um "processo isolado", conforme descrito no " [Guia para executar Azure Functions em C# no modelo de trabalhador isolado](https://docs.microsoft.com/en-us/azure/azure-functions/dotnet-isolated-process-guide#differences-with-net-class-library-functions) ". No entanto, versões mais antigas podem não oferecer suporte a esses tipos de Azure Functions.

## 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 recompilar/construir 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.

## Evento pós-construção
Para automatizar o processo de copiar os arquivos necessários para o diretório bin local da Função do Azure, siga estas instruções para configurar um *evento pós-compilação* no Visual Studio:
1. Clique com o botão direito do mouse no projeto do Azure Functions e selecione **Propriedades** .
2. Desça a página até a seção **Eventos** .
3. Insira um **evento pós-compilação** conforme mostrado abaixo:
```shell
XCOPY "$(TargetDir)runtimes" "$(TargetDir)bin\runtimes" /S /E /Y /I /R /D
```
Este comando irá:
- Copie o conteúdo do diretório _runtimes_ para o diretório _bin/runtimes_.
- Os comutadores `/S` e `/E` garantem que todos os subdiretórios e diretórios vazios sejam incluídos.
- O comutador `/Y` suprime a solicitação para confirmar que você deseja substituir um arquivo de destino existente.
- O comutador `/I` assume que o destino é um diretório, se não existir.
- O comutador `/R` sobrescreve arquivos somente leitura.
- O comutador `/D` copia arquivos alterados em ou após a data especificada.

Uma exceção comum vista ao encontrar esse problema é "Erro ao localizar arquivo de configuração de implantação IronPdf.Native.Chrome.deployment.json."
Recomendado: Execute Aplicativos de Função do Azure hospedados no Windows que visam .NET Core 3.1 <TargetFramework>netcoreapp3.1</TargetFramework>
Requisito: Utilize a configuração padrão "em processo" ao criar uma Função do Azure no Visual Studio. A versão mais recente do IronPDF oferece suporte a Azure Functions executadas "fora do processo" ou em um "processo isolado", conforme descrito no " Guia para executar Azure Functions em C# no modelo de trabalhador isolado ". No entanto, versões mais antigas podem não oferecer suporte a esses tipos de Azure Functions.
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 recompilar/construir 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.
Evento pós-construção
Para automatizar o processo de copiar os arquivos necessários para o diretório bin local da Função do Azure, siga estas instruções para configurar um evento pós-compilação no Visual Studio:
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 evento pós-compilação conforme mostrado abaixo:
Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais bem estruturados e visualmente atraentes.