E' possibile compilare un qualsiasi progetto WEB sviluppato con .NET da linea di comando, anche se le si era precedentemente, sviluppato con Visual Studio e magari con code behind.
Il comando per compilare è il seguente:
c:\IlNomeDelProgetto> csc.exe /target:library /out:bin/IlNomeDelProgetto.dll /recurse:*.cs /warn:0
In questo caso sto compilando un applicativo web scritto in C# (csc.exe è il compilatore per Csharp).
Prima di digitare il comando posizionarsi nella cartella che contiene il progetto.
Ovviamente è possibile compilare qualsiasi applicativo .NET, per avere maggiori informazioni e per conoscere il significato di tutte le opzioni, digitare:
csc.exe /?
o nel caso di Visual Basic
vbc.exe /?
Per eseguire il comando non è necessario avere Visual Studio, ma solo il framework .NET installato.
Se il comando (csc o vbc) non viene trovato è perche non è nella variabile d'ambiente PATH. In questo caso bisogna vedere dove è installato il Framework .NET e digitare il percorso completo. Ad esempio:
c:\IlNomeDelProgetto> C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\csc.exe /target:library /out:bin/IlNomeDelProgetto.dll /recurse:*.cs /warn:0

Digitare ogni volta tutto il comando può essere un po' noioso, quindi è meglio fare un file .BAT che ci semplifichi il lavoro.
Creare con notepad un file make.bat nella root del sito e digitare il seguente testo:
%WINDIR%\Microsoft.NET\Framework\v1.1.4322\csc.exe /target:library /out:bin/%1.dll /recurse:*.cs /warn:0

per eseguirlo è sufficiente digitare:
c:\IlNomeDelProgetto> make IlNomeDelProgetto


Esempio di BAT per la compilazione di una WebPart di SharePoint 2007 che, inoltre, aggiunge la dll alla GAC, riavvia l'application pool ed apre la pagina di SharePoint nel browser
@ECHO OFF
time /T
SET DLLNAME=WebPart_TestPostBack
SET OUTDIR=Bin\Debug
SET KEYFILE=Properties\Temporary.snk
SET PAGE=http://localhost/Pages/Test.aspx
SET APPPOOL=SharePoint - 80
SET SHAREPOINTDLL=%CommonProgramFiles%\Microsoft Shared\web server extensions\12\ISAPI\Microsoft.SharePoint.dll

IF "%1"== "/r" GOTO RECICLE
IF "%1"== "/R" GOTO RECICLE

IF "%1"== "/g" GOTO GAC
IF "%1"== "/g" GOTO GAC

ECHO * compiling
"%WINDIR%\Microsoft.NET\FrameWork\v2.0.50727\csc.exe" /target:library /out:"%OUTDIR%\%DLLNAME%.dll" /recurse:*.cs /warn:0 /keyfile:"%KEYFILE%" /debug:full /pdb:"%OUTDIR%\%DLLNAME%.pdb" /r:"%SHAREPOINTDLL%"
IF NOT %ERRORLEVEL%==0 GOTO ERRORCSC

:GAC

ECHO * add to GAC
"%ProgramFiles%\Microsoft Visual Studio 8\SDK\v2.0\Bin\gacutil.exe" /i "%OUTDIR%\%DLLNAME%.dll" /f
IF NOT %ERRORLEVEL%==0 GOTO ERRORGAC

:RECICLE

ECHO * recicle AppPool
iisapp.vbs /a "%APPPOOL%" /r
IF NOT %ERRORLEVEL%==0 GOTO ERRORAPP

ECHO * open page
start %PAGE%

ECHO * current AppPool
iisapp.vbs /a "%APPPOOL%"

ECHO * OK

GOTO FINE 

:ERRORCSC
ECHO ***************************************************
ECHO ERRORE NON COMPILATO
GOTO FINE 

:ERRORGAC
ECHO ***************************************************
ECHO ERRORE NON copiato nella gac
GOTO FINE 

:ERRORAPP
ECHO ***************************************************
ECHO ERRORE application pool (%APPPOOL%) non trovato 
GOTO FINE 

:FINE