Udostępnij za pośrednictwem


Czyszczenie kompilacji

Po wyczyszczeniu kompilacji wszystkie pliki pośrednie i wyjściowe zostaną usunięte, pozostawiając tylko pliki projektu i składnika. Z plików projektu i składnika można następnie skompilować nowe wystąpienia plików pośrednich i wyjściowych.

Tworzenie katalogu dla elementów wyjściowych

Domyślnie plik exe tworzony podczas kompilowania projektu jest umieszczany w tym samym katalogu co pliki źródłowe i projektu. Zazwyczaj jednak elementy wyjściowe są tworzone w osobnym katalogu.

Aby utworzyć katalog dla elementów wyjściowych

  1. Property Użyj elementu , aby zdefiniować lokalizację i nazwę katalogu. Na przykład utwórz katalog o nazwie BuiltApp w katalogu zawierającym pliki projektu i źródła:

    <builtdir>BuiltApp</builtdir>

  2. Użyj zadania MakeDir, aby utworzyć katalog, jeśli katalog nie istnieje. Na przykład:

    <MakeDir Directories = "$(builtdir)"
     Condition = "!Exists('$(builtdir)')" />
    

Usuwanie elementów wyjściowych

Przed utworzeniem nowych wystąpień plików pośrednich i wyjściowych można wyczyścić wszystkie poprzednie wystąpienia plików pośrednich i wyjściowych. Za pomocą zadania RemoveDir usuń katalog i wszystkie pliki i katalogi, które zawiera z dysku.

Aby usunąć katalog i wszystkie pliki zawarte w katalogu

  • RemoveDir Użyj zadania , aby usunąć katalog. Na przykład:

    <RemoveDir Directories="$(builtdir)" />

Przykład

Poniższy przykładowy projekt kodu zawiera nowy element docelowy , Cleanktóry używa RemoveDir zadania do usunięcia katalogu oraz wszystkich plików i katalogów, które zawiera. W tym przykładzie obiekt docelowy Compile tworzy oddzielny katalog dla elementów wyjściowych, które są usuwane podczas czyszczenia kompilacji.

Compile jest definiowany jako domyślny element docelowy i dlatego jest używany automatycznie, chyba że określisz inny element docelowy lub docelowy. Użyj przełącznika wiersza polecenia -target , aby określić inny element docelowy. Na przykład:

msbuild <file name>.proj -target:Clean

Przełącznik -target można skrócić do -t i może określić więcej niż jeden element docelowy. Aby na przykład użyć obiektu docelowegoClean, wpisz :Compile

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

<Project DefaultTargets = "Compile"
    xmlns="http://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>