Porady: czyszczenie kompilacji
Podczas oczyszczania kompilacji są usuwane wszystkie pliki pośrednie i wyjściowych, pozostawiając tylko pliki projektu i składnika.Z plików projektu i składnik nowe instancje pośrednich i pliki wyjściowe mogą następnie być wbudowane.Biblioteka typowe zadania, które jest dostarczana z MSBuild obejmuje Exec zadanie, można użyć do uruchomienia poleceń systemu.Aby uzyskać więcej informacji na stronie Biblioteka zadań, zobacz Odwołanie do zadania MSBuild.
Tworzenie katalogu dla elementów danych wyjściowych
Domyślnie plik exe, który jest tworzony podczas kompilowania projektu jest umieszczana w tym samym katalogu co pliki projektu i źródła.Zazwyczaj jednak elementów danych wyjściowych są tworzone w oddzielnym katalogu.
Aby utworzyć katalog dla elementów danych wyjściowych
Użyj Property element, aby zdefiniować lokalizację i nazwę katalogu.Na przykład, utworzyć katalog o nazwie BuiltApp w katalogu, zawierającego pliki projektu i źródła:
<builtdir>BuiltApp</builtdir>
Użyj MakeDir zadań, aby utworzyć katalog, jeśli katalog nie istnieje.Na przykład:
<MakeDir Directories = "$(builtdir)"
Condition = "!Exists('$(builtdir)')" />
Usuwanie elementów danych wyjściowych
Przed do tworzenia nowych wystąpień pośrednich i wyjścia plików, można wyczyścić wszystkie poprzednie wystąpienia pośrednich i wyjścia plików.Użyj RemoveDir zadania, aby usunąć katalog i wszystkie pliki i katalogi, które zawiera z dysku.
Aby usunąć wszystkie pliki znajdujące się w katalogu i katalogu
Użyj RemoveDir zadanie do usunięcia katalogu.Na przykład:
<RemoveDir Directories="$(builtdir)" />
Przykład
Następujący kod dodaje przykład projekt zawiera nowy element docelowy, Clean, który używa RemoveDir zadania, aby usunąć katalog i wszystkie pliki i katalogi, które on zawiera.Również w tym przykładzie Compile docelowej tworzy oddzielny katalog dla elementów danych wyjściowych, które są usuwane podczas kompilacji jest czyszczone.
Compilejest zdefiniowany jako domyślne miejsce docelowe i dlatego jest używana automatycznie, chyba że można określić inny cel lub cele.Użyj przełącznika wiersza polecenia /target do określenia innej docelowej.Na przykład:
msbuild <file name>.proj /target:Clean
/target Przełącznik może zostać skrócony do /t i można określić więcej niż jeden obiekt docelowy.Na przykład, aby użyć obiektu docelowego Clean następnie docelowy Compile, wpisz:
msbuild <file name>.proj /t:Clean;Compile
<Project DefaultTargets = "Compile"
xmlns="https://schemas.microsoft.com/developer/msbuild/2003" >
<PropertyGroup>
<!-- Set the application name as a property -->
<name>HelloWorldCS</name>
<!-- Set the output folder as a property -->
<builtdir>BuiltApp</builtdir>
</PropertyGroup>
<ItemGroup>
<!-- Specify the inputs by type and file name -->
<CSFile Include = "consolehwcs1.cs"/>
</ItemGroup>
<Target Name = "Compile">
<!-- Check whether an output folder exists and create
one if necessary -->
<MakeDir Directories = "$(builtdir)"
Condition = "!Exists('$(builtdir)')" />
<!-- Run the Visual C# compiler -->
<CSC Sources = "@(CSFile)"
OutputAssembly = "$(BuiltDir)\$(appname).exe">
<Output TaskParameter = "OutputAssembly"
ItemName = "EXEFile" />
</CSC>
<!-- Log the file name of the output file -->
<Message Text="The output file is @(EXEFile)"/>
</Target>
<Target Name = "Clean">
<RemoveDir Directories="$(builtdir)" />
</Target>
</Project>