Gewusst wie: Bereinigen eines Builds

Wenn Sie einen Build bereinigen, werden alle Zwischen- und Ausgabedateien gelöscht, sodass nur die Projekt- und Komponentendateien übrig bleiben. Anschließend können aus den Projekt- und Komponentendateien neue Instanzen der Zwischen- und Ausgabedateien erstellt werden. Die mit MSBuild bereitgestellte Bibliothek allgemeiner Aufgaben umfasst eine Exec-Aufgabe, mit der Sie Systembefehle ausführen können. Weitere Informationen zur Aufgabenbibliothek finden Sie unter Referenz zu MSBuild-Aufgaben.

Erstellen eines Verzeichnisses für Ausgabeelemente

Die während der Projektkompilierung erstellte EXE-Datei wird standardmäßig im selben Verzeichnis wie die Projekt- und Quelldateien abgelegt. Ausgabeelemente werden jedoch normalerweise in einem separaten Verzeichnis erstellt.

So erstellen Sie ein Verzeichnis für Ausgabeelemente

  1. Verwenden Sie das Property-Element, um den Speicherort und den Namen des Verzeichnisses zu definieren. Erstellen Sie beispielsweise das Verzeichnis BuiltApp in dem Verzeichnis, das die Projekt- und Quelldateien enthält:

    <builtdir>BuiltApp</builtdir>

  2. Falls das Verzeichnis nicht vorhanden ist, verwenden Sie die MakeDir-Aufgabe, um es zu erstellen. Beispiele:

    <MakeDir Directories = "$(builtdir)"

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

Entfernen der Ausgabeelemente

Bevor Sie neue Instanzen von Zwischen- und Ausgabedateien erstellen, möchten Sie möglicherweise alle vorherigen Instanzen dieser Dateien löschen. Verwenden Sie die RemoveDir-Aufgabe, um ein Verzeichnis sowie alle darin enthaltenen Dateien und Verzeichnisse von einem Datenträger zu löschen.

So entfernen Sie ein Verzeichnis und alle im Verzeichnis enthaltenen Dateien

  • Verwenden Sie die RemoveDir-Aufgabe, um das Verzeichnis zu entfernen. Beispiele:

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

Beispiel

Das folgende Codebeispielprojekt enthält das neue Ziel Clean, das die RemoveDir-Aufgabe verwendet, um ein Verzeichnis mit allen enthaltenen Dateien und Verzeichnissen zu löschen. Darüber hinaus wird vom Ziel Compile in diesem Beispiel ein separates Verzeichnis für die Ausgabeelemente erstellt, die beim Bereinigen des Builds gelöscht werden.

Compile ist als Standardziel definiert und wird deshalb automatisch verwendet, es sei denn, Sie geben ein bzw. mehrere andere Ziele an. Mit dem Befehlszeilenschalter /target können Sie ein anderes Ziel angeben. Beispiele:

msbuild <file name>.proj /target:Clean

Der Schalter /target kann in der Kurzform /t sowie zum Festlegen mehrerer Ziele verwendet werden. Um beispielsweise das Ziel Clean und dann das Ziel Compile zu verwenden, geben Sie Folgendes ein.

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>

Siehe auch

Referenz

Exec-Aufgabe

MakeDir-Aufgabe

RemoveDir-Aufgabe

Csc-Aufgabe

Konzepte

MSBuild-Ziele