2012-09-19 13 views
22

Używam MSBuild ze skryptu do kompilacji mojego projektu. Zauważyłem, że po prostu robi kompilację, a nie czystość/przebudowę.Jak zmusić MSBuild do czyszczenia lub odbudowy?

Mam następujący:

<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> 

Jak wymusić czyste/odbudować?

Odpowiedz

29

Zmień

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

do

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

lub

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

Aby uzyskać więcej informacji, należy spojrzeć na MSBuild Task documentation.

+0

Wydaje się oczywiste, gdy widzisz odpowiedź. Powinien go mieć. Dzięki za odpowiedź – John

+0

Co powiesz na nowy _csproj_? – Shimmy

15

"% katalog_systemu_Windows% \ Microsoft.NET \ ram \ v4.0.30319 \ MSBuild" Project.sln /P: = konfiguracji Release/t: Ponownie

+0

W pytaniu msbuild jest używany w pliku projektu. Nie bezpośrednio w wierszu polecenia. – warunapww

+0

W pytaniu "Używam msbuild ze skryptu do kompilowania mojego projektu" ze skryptu lepiej użyć wiersza polecenia – Geograph

+0

Niezależnie od tego, czy odpowiada na oryginalne pytanie, ten fragment pomógł mi dotrzeć tam, gdzie potrzebowałem ... dzięki! – madannes

1

zawsze stosować

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

Ponieważ zgodnie z , jeśli masz wiele projektów w swoim rozwiązaniu za pomocą "Przebuduj" jako cel, może powodować czyste i budować się równolegle. Które mogą powodować problemy w zależnościach projektu.

Ale kiedy użyjesz "Czyszczenia i Budowania" jako celu, kompilacja rozpocznie się dopiero po wyczyszczeniu wszystkich projektów.

Powiązane problemy