2012-09-19 12 views
22

Ich verwende MSBuild von einem Skript, um mein Projekt zu kompilieren. Ich habe festgestellt, dass es nur ein Build und kein Clean/Rebuild ist.Wie erzwinge ich MSBuild zu reinigen oder neu zu erstellen?

Ich habe folgendes:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build" ToolsVersion="4.0"> 
<Target Name="Build"> 
    <MSBuild Projects="$(MSBuildProjectDirectory)\myproj.csproj" Targets="Build" Properties="OutputPath=$(MSBuildProjectDirectory)\..\bin\" /> 
</Target> 

Wie erzwinge ich eine saubere/rebuild?

Antwort

29

ändern

<MSBuild Projects="$(MSBuildProjectDirectory)\myproj.csproj" 
    Targets="Build" 
    Properties="OutputPath=$(MSBuildProjectDirectory)\..\bin\" /> 

zu

<MSBuild Projects="$(MSBuildProjectDirectory)\myproj.csproj" 
    Targets="Clean;Build" 
    Properties="OutputPath=$(MSBuildProjectDirectory)\..\bin\" /> 

oder

<MSBuild Projects="$(MSBuildProjectDirectory)\myproj.csproj" Targets="Rebuild" 
    Properties="OutputPath=$(MSBuildProjectDirectory)\..\bin\" /> 

Für weitere Informationen schauen die MSBuild Task documentation an.

+0

Scheint offensichtlich, wenn Sie die Antwort sehen. Sollte das Problem haben. Danke für die Antwort – John

+0

Wie wäre es mit dem neuen _csproj_? – Shimmy

15

"% windir% \ Microsoft.NET \ Framework \ v4.0.30319 \ MSBuild" Project.sln /p: Konfiguration = Freigabe/t: Rebuild

+0

In der Frage wird Msbuild in einer Projektdatei verwendet. Nicht direkt in der Eingabeaufforderung. – warunapww

+0

In Frage "Ich benutze Msbuild von einem Skript, um mein Projekt zu kompilieren" von einem Skript besser verwenden Sie die Eingabeaufforderung – Geograph

+0

Ob es die ursprüngliche Frage beantwortet, half das Schnipsel mir zu bekommen, wo ich gehen musste. Danke! – madannes

1

immer zu verwenden Versuchen

<MSBuild Projects="$(MSBuildProjectDirectory)\myproj.csproj" 
    Targets="Clean;Build" 
    Properties="OutputPath=$(MSBuildProjectDirectory)\..\bin\" /> 

Da laut this MSDN article mehrere Projekte in Ihrer Projektmappe, die "Rebuild" als Ziel verwenden, dazu führen können, dass "clean" und "build" parallel ablaufen. Dies kann zu Problemen in den Projektabhängigkeiten führen.

Wenn Sie jedoch "Clean and Build" als Ziel verwenden, wird Build erst gestartet, nachdem alle Projekte bereinigt wurden.