2008-09-22 7 views
7

Sto cercando di imparare come usare MSBuild in modo che possiamo usarlo per costruire il nostro progetto. C'è quello che sembra essere un buco molto grande nella documentazione, e trovo il buco ovunque io guardi, essendo il buco come si chiama o altrimenti si designa il file di progetto MSBuild?Quale nome si attribuisce al file di costruzione del progetto MSBuild?

Ad esempio, il tutorial su MSBuild che può essere scaricato da Microsoft entra nei dettagli del contenuto del file di build. Ad esempio, ecco un po 'del loro file di progetto Hello World.

<Project MSBuildVersion = "1.0" DefaultTargets = "Compile"> 
    <Property appname = "HelloWorldCS"/> 
    <Item Type = "CSFile" Include = "consolehwcs1.cs"/> 
    <Target Name = "Compile"> 
     <Task Name = "CSC" Sources = "@(CSFile)"> 
     <OutputItem TaskParameter = "OutputAssembly" Type = "EXEFile" Include = "$(appname).exe"/> 
     </Task> 
     <Message Text="The output file is @(EXEFile)"/> 
    </Target> 
</Project> 

E si va avanti bla, bla, bla compiti I prodotti che bla bla bla, ecco come si fa questo ed ecco come lo fai. Inutile, completamente inutile. Perché non sanno mai come si suppone che questo file xml venga riconosciuto dall'app MSBuild. Dovrebbe essere chiamato in un modo particolare? Dovrebbe essere inserito in una directory particolare? Entrambi? Nessuno dei due?

Non è solo il tutorial MS in cui non ne parlano. Non sono stato in grado di trovarlo su MSDN o su qualsiasi altro link che possa estorcere a Groups.Google.

Qualcuno qui sa? Lo spero davvero.

A cura di aggiungere: ho scambiato il .proj file incluso nel tutorial di essere il Csproj file ed è quello che uno alimentato a MSBuild, ma ci sono voluti la risposta di seguito prima ho visto questo . Dovrebbe essere piuttosto ovvio, ma l'ho perso.

+0

L'aspetto dell'estensione del nome file di questa domanda è indirizzato nella wiki della comunità [Esiste un'estensione di file standard per i file MSBuild?] (Http://stackoverflow.com/questions/2007689/is-there-a-standard- di file-extension-per-MSBuild-files/2012217 # 2012217). – weir

risposta

5

È possibile assegnare un nome al file come si ritiene opportuno. Dalla aiuto per MSBuild

msbuild.exe /? 

Microsoft (R) Build Engine Version 2.0.50727.3053 
[Microsoft .NET Framework, Version 2.0.50727.3053] 
Copyright (C) Microsoft Corporation 2005. All rights reserved. 

Syntax:    MSBuild.exe [options] [project file] 

Quindi, se si salva il file come mybuildfile.xml si usa la sintassi:

msbuild.exe mybuildfile.xml 
0

O per i veri pigri, come me.

msbuild.exe project-file-name.vcproj /t:Rebuild /p:Configuration=Release 
2

Non è necessario specificare il file di generazione se si rispettano seguente strategia:

Oggi, quando si richiama MSBuild.exe dalla riga di comando e non si specifica qualsiasi progetto file come argomenti , quindi eseguiamo automaticamente l'auto e analizziamo e decidiamo se noi dovremmo costruire qualcosa. Se troviamo sia un progetto msbuild (niente che ha un'estensione di * proj) o un file di soluzione (sln), costruiremo sia il progetto o la soluzione come a quando non v'è una sola soluzione o un progetto nella directory. Se la soluzione è una soluzione e un progetto, sarà necessario specificare la soluzione. Se c'è più di un progetto o più di una soluzione, si genera un messaggio di errore perché non è possibile decidere quale uno da costruire.

Questo è preso da New Feature Feedback Request: /IgnoreProjectExtensions - A new command-line switch.

Io nomino sempre i miei script scritti manualmente build.proj.

2

Non una risposta diretta, ma correlata; se si utilizza .msproj come estensione, Visual Studio fornisce intellisense.

+0

Ho rinominato il mio file di build con estensione .msproj e visual studio 2010 non lo riconosco. #fallire –

0

Visual Studio 2012 riconosce lo .msbuildproj come un'estensione e lo considererà un "progetto" in Esplora soluzioni.

Problemi correlati