O Visual Studio 2005 já incorpora a possibilidade de pre-compilação no seu IDE. No entanto o Visual Web Developer não o permite. POdemos no entanto fazé-lo manualmente executendo o aplicativo aspnet_compiler.exe.
A ferramenta de compilação do ASP.NET (Aspnet_compiler.exe) permite que compilar um aplicativo ASP.NET, in-loco ou para implantação num local de destino como um servidor de produção. Compilação in-loco ajuda o desempenho do aplicativo, pois os utilizadores finais não encontrarão um atraso na primeira solicitação para o aplicativo enquanto o aplicativo é compilado.
Compilação para implantação pode ser executada em uma destas duas maneiras: um que remove todos os arquivos de origem, como arquivos code-behind e marcação, ou um que mantém os arquivos de marcação.
Porquê pré-compilar:
As aplicações ASP.Net não desenvolvidas com as ferramentas acima descritas(sim, existem outras, como por exemplo o Delphi Prism da Oxygene) não necessitam de ser pré-compiladas para poderem “correr”, o .Net compila-as no momento em que são requeridas pelo utilizador.
A Pré-compilação é recomendável quando se pretende que estas executem mais rápido, quando não se pretende deixar o código fonte no servidor(por vezes externo e comercial) e quando se espera não precisar de alterar código frequentemente.
Aspnet_compiler no framework 3.5:
Não existe aspnet_compiler no .NET 3.5 porque o .NET 3.5 não inclui ASP.NET. A última versão do ASP.NET fio lançada como parte do Framework 2.0. No entanto como o .Net 2.0 é um subconjunto do ,Net 3.5 pode-se usar o mesmo aspnet_compiler que normalmente se encontra no direcório (%WINDIR%\Microsoft.NET\Framework\v2.0.50727\).
Exemplo de batch file:
set frmwk=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
set src=X:\MyApp
set dest=X:\MyAppcompiled
del /F /Q X:\MyAppcompiled\*.*
%frmwk%\aspnet_compiler -v /MyApp -p %src% %dest% -c
sintax:
aspnet_compiler [-?] [-m metabasePath | -v virtualPath [-p physicalPath]] [[-u] [-f] [-d] [-fixednames] targetDir] [-c] [-errorstack] [-nologo] [[-keyfile file | -keycontainer container ] [-aptca] [-delaysign]]
Mais informações: