2010-08-19 16 views
5

Ho creato alcuni compiti di compilazione di ms per il mio progetto VS.file esterno per contenere i compiti di msbuild

Piuttosto che dover aggiornare il file VS Project con ciascuna delle attività, è possibile creare un file esterno per contenere le attività di compilazione e farvi riferimento tramite il file di progetto principale?

Inoltre, ho visto con nant, che è possibile creare il file .bat per eseguire le attività di nant. È possibile fare simili con msbuild?

risposta

6

Sì. È possibile utilizzare l'attività di importazione:

<Import Project="PathToMyIncludeFile\Include.proj" /> 

E sì, è possibile creare un file batch per eseguire msbuild. La sintassi è

msbuild <project> /t:target[;target] /p:propertyname=propertyvalue 

Dove sono definiti gli obiettivi nel file msbuild e le proprietà sono le proprietà definite nel file. Se non si specifica una destinazione, verrà eseguito il valore predefinito definito nell'elemento del file msbuild. Qui ci sono un paio di esempi:

Quindi, per eseguire la vostra costruzione con Clean, e compila obiettivi:

msbuild myproject.proj /t:Clean;Compile 

o per eseguire la build con un obiettivo di compilazione e di una configurazione di rilascio:

msbuild myproject.proj /t:Compile /p:Configuration=Release 

O per eseguire il vostro costruire con la destinazione predefinita e impostare una proprietà version:

msbuild myproject.proj /p:Version=2.0.0.1 

I parametri della riga di comando hanno la precedenza sui valori definiti nel file. Così, nell'esempio di cui sopra se si ha la versione definita nel file come:

<PropertyGroup> 
    <Version>1.0.0.0</Version> 
<PropertyGroup> 

La build correrebbe con una versione configurata di 2.0.0.1

Come al solito, controllare MSDN per maggiori informazioni.