Vyčištění sestavení

Když vyčistíte sestavení, odstraní se všechny zprostředkující a výstupní soubory, takže ponecháte jenom soubory projektu a komponent. Ze souborů projektu a komponent je pak možné sestavit nové instance zprostředkujících a výstupních souborů.

Vytvoření adresáře pro výstupní položky

Ve výchozím nastavení je soubor .exe, který je vytvořen při kompilaci projektu je umístěn ve stejném adresáři jako projekt a zdrojové soubory. Výstupní položky se ale obvykle vytvářejí v samostatném adresáři.

Vytvoření adresáře pro výstupní položky

  1. Pomocí elementu Property definujte umístění a název adresáře. Vytvořte například adresář s názvem BuiltApp v adresáři, který obsahuje projekt a zdrojové soubory:

    <builtdir>BuiltApp</builtdir>

  2. Pomocí úlohy MakeDir vytvořte adresář, pokud adresář neexistuje. Příklad:

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

Odebrání výstupních položek

Před vytvořením nových instancí zprostředkujících a výstupních souborů můžete chtít vymazat všechny předchozí instance zprostředkujících a výstupních souborů. Pomocí úlohy RemoveDir odstraňte adresář a všechny soubory a adresáře, které obsahuje z disku.

Odebrání adresáře a všech souborů obsažených v adresáři

  • RemoveDir Pomocí úlohy odeberte adresář. Příklad:

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

Příklad

Následující ukázkový projekt kódu obsahuje nový cíl , Cleankterý používá RemoveDir úkol k odstranění adresáře a všech souborů a adresářů, které obsahuje. V tomto příkladu Compile cíl vytvoří samostatný adresář pro výstupní položky, které se odstraní při vyčištění sestavení.

Compile je definován jako výchozí cíl, a proto se používá automaticky, pokud nezadáte jiný cíl nebo cíle. K určení jiného cíle použijete přepínač příkazového řádku -target . Příklad:

msbuild <file name>.proj -target:Clean

Přepínač -target lze zkrátit na -t a zadat více než jeden cíl. Pokud chcete například použít cílClean, zadejte: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>