Udostępnij za pośrednictwem


Jak: czyszczenia 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 Zadanie programu MSBuild odniesienia.

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

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

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

Zobacz też

Informacje

Zadanie Exec

Zadanie MakeDir

Zadanie RemoveDir

CSC zadania

Koncepcje

Cele programu MSBuild