E' possibile
compilare un qualsiasi progetto
WEB sviluppato con
.NET da linea di comando, anche se lo 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
C sharp).
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:
o nel caso di Visual Basic
Se il comando (csc o vbc) non viene trovato è perché 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