Dela via


Ange vilket MSBuild-mål som ska skapas först

MSBuild-projektfiler kan innehålla ett eller flera mål som definierar hur projektet skapas. MSBuild skapar det första målet som hittas och eventuella beroenden, såvida inte:

  • Elementet Project innehåller ett InitialTargets-attribut.
  • Elementet Project innehåller ett DefaultTargets-attribut.
  • MSBuild-kommandot har en -target växel som anger ett mål.

Använda attributet InitialTargets

Attributet InitialTargets för elementet Project anger det första målet som körs först. Den åsidosätter alla mål som du anger med MSBuild på kommandoraden eller i attributet DefaultTargets för Project-elementet.

Ange ett enda initialt mål

Ange standardmålet i attributet InitialTargets för elementet Project. Till exempel:

<Project InitialTargets="Clean">

Ange flera initiala mål

Du kan ange mer än ett första mål i attributet InitialTargets för elementet Project. Visa en lista över målen i ordning och använd ett semikolon för att avgränsa varje mål. Målen i listan körs sekventiellt.

Om du till exempel vill köra Clean mål och sedan Compile mål anger du:

<Project InitialTargets="Clean;Compile">

Använda attributet DefaultTargets

Attributet DefaultTargets för elementet Project anger vilket mål eller vilka mål som skapas om ett mål inte uttryckligen anges på kommandoraden.

Om mål anges i både InitialTargets- och DefaultTargets-attributen för Project-elementet och inget mål anges på kommandoraden, kör MSBuild målen som anges i attributet InitialTargets följt av de mål som anges i attributet DefaultTargets.

Ange ett enda standardmål

Ange standardmålet i attributet DefaultTargets för elementet Project. Till exempel:

<Project DefaultTargets="Compile">`

Ange flera standardmål

Du kan ange mer än ett standardmål i attributet DefaultTargets för Project-elementet. Ange standardmålen i ordning och använd ett semikolon för att separera varje mål. Målen i listan körs sekventiellt.

Om du till exempel vill köra Clean mål och sedan Compile mål anger du:

<Project DefaultTargets="Clean;Compile">

Använd växeln -target för att åsidosätta standardmålet

Om ett standardmål inte har definierats i projektfilen, eller om du inte vill använda det definierade standardmålet, kan du använda kommandoradsväxeln -target för att ange ett annat mål. Målet eller målen som anges med växeln -target körs i stället för de mål som anges av attributet DefaultTargets för Project-elementet. Attributet InitialTargets, där målen anges, körs alltid först.

Åsidosätt standardmålet med ett enda mål

Ange det mål som ska användas som det första målet med hjälp av kommandoradsväxeln -target med ett kolon (:) och målets namn. Till exempel:

msbuild file.proj -target:Clean

Åsidosätt standardmålet med flera mål

Ange en lista över mål som ska användas som första mål och avgränsa dem med semikolon med -target kommandoradsväxel. Till exempel:

msbuild <file name>.proj -t:Clean;Compile