quinta-feira, 8 de agosto de 2013

Desabilitando o uso do [Temporary ASP.NET Files] no VS.NET

Qual desenvolvedor já não limpou o diretório de arquivos temporários do .NET Framework algumas centenas de vezes?! 

O VS.NET usa este importante repositório [Microsoft.NET\Framework\versionNumber\Temporary ASP.NET Files] quando você compila sua aplicação.

O principal objetivo disto é a performance na execução da aplicação, pois na primeira compilação do seu código todas as DLLs são copiadas para este TempDir e usadas em subsequentes chamadas, não necessitando novamente de uma compilação pelo VS.NET.

É claro que não existem somente pontos a favor disto pois, por questões de permissão, por exemplo, começemos a nos deparar com erros 'estranhos' no VS.NET.

Talvez já se tenha deparado com o seguinte erro ao tentar executar sua aplicação:



Por padrão, sua aplicação Web usa este TempDir. Mas podemos desabilitar isto, adicionando apenas uma instrução no Web.config da aplicação, conforme ilustrado abaixo:


    <system.web>
      <hostingEnvironment shadowCopyBinAssemblies="false" />
    </system.web>


Portanto, ao configurar a propriedade [shadowCopyBinAssemblies] para [false] estaremos desabilitando o uso deste repositório. É claro que devemos usar com cautela, pois estamos 'prejudicando' a performance da aplicação. Após os testes de sua aplicação, recomenda-se remover esta instrução ao copiar sua aplicação para um servidor de produção.

Ref: Understanding ASP.NET Dynamic Compilation

[]s!