Domanda

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 dappertutto, il buco è come si nomina o si designa in altro modo il file di progetto MSBuild?

Ad esempio, il tutorial su MSBuild che può essere scaricato da Microsoft fornisce alcuni dettagli sul 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 continua su blah, blah, blah Oggetti blah blah blah compiti, ecco come lo fai ed ecco come lo fai. Inutile, completamente inutile. Perché non vanno mai in giro a dire come questo file xml dovrebbe essere riconosciuto dall'app MSBuild. Dovrebbe essere chiamato in un modo particolare? Dovrebbe essere inserito in una directory particolare? Tutti e due? Né?

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

Qualcuno qui lo sa? Lo spero proprio.

  

Modificato per aggiungere: ho scambiato il   File .proj incluso nel tutorial   essere il file .csproj e questo è quello   uno si è nutrito di MSBuild, ma ci è voluta la risposta qui sotto prima di vederlo.   Avrebbe dovuto essere piuttosto ovvio, ma l'ho perso.

È stato utile?

Soluzione

Puoi nominare il file come ritieni opportuno. Dall'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 salvate il file come mybuildfile.xml userete la sintassi:

msbuild.exe mybuildfile.xml

Altri suggerimenti

Non devi specificare il file di build se rispetti la seguente strategia:

  

Oggi, quando invochi msbuild.exe   dalla riga di comando e non farlo   specifica tutti i file di progetto come   argomenti, quindi facciamo un po 'di auto   inferenziale e scansione e decidere se noi   dovrebbe costruire qualsiasi cosa. Se lo troviamo   o un progetto msbuild (niente   che ha un'estensione di * proj) o a   file di soluzione (.sln), costruiremo   o il progetto o la soluzione come   purché ci sia una sola soluzione o   un progetto nella directory. Se ci   è una soluzione e un progetto, lo faremo   dare la preferenza alla soluzione. Se   c'è più di un progetto o più   di una soluzione, viene emesso un errore   messaggio perché non possiamo decidere quale   uno da costruire.

Questo è tratto da Richiesta di feedback su nuove funzionalità: / IgnoreProjectExtensions - Una nuova opzione della riga di comando .

Nomino sempre i miei script scritti manualmente build.proj .

Non una risposta diretta, ma correlata; se usi .msproj come estensione, Visual Studio ti offre intellisense.

O per i più pigri, come me.

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

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top