Bagikan melalui


Membersihkan build

Saat Anda membersihkan build, semua file perantara dan output dihapus, hanya menyisakan file proyek dan komponen. Dari file proyek dan komponen, instans baru file perantara dan output kemudian dapat dibangun.

Membuat direktori untuk item output

Secara default, file .exe yang dibuat saat Anda mengompilasi proyek ditempatkan di direktori yang sama dengan file proyek dan sumber. Namun, biasanya, item output dibuat dalam direktori terpisah.

Untuk membuat direktori item output

  1. Gunakan Property elemen untuk menentukan lokasi dan nama direktori. Misalnya, buat direktori bernama BuiltApp di direktori yang berisi file proyek dan sumber:

    <builtdir>BuiltApp</builtdir>

  2. Gunakan tugas MakeDir untuk membuat direktori jika direktori tidak ada. Contohnya:

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

Menghapus item output

Sebelum membuat instans baru file perantara dan output, Anda mungkin ingin menghapus semua instans sebelumnya dari file perantara dan output. Gunakan tugas RemoveDir untuk menghapus direktori dan semua file dan direktori yang dikandungnya dari disk.

Untuk menghapus direktori dan semua file yang terkandung dalam direktori

  • Gunakan tugas RemoveDir untuk menghapus direktori. Contohnya:

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

Contoh

Proyek contoh kode berikut berisi target baru, Clean, yang menggunakan tugas RemoveDir untuk menghapus direktori dan semua file serta direktori yang dikandungnya. Juga dalam contoh ini, target Compile membuat direktori terpisah untuk item output yang dihapus saat build dibersihkan.

Compile didefinisikan sebagai target default dan oleh karena itu digunakan secara otomatis kecuali Anda menentukan target atau target yang berbeda. Anda menggunakan sakelar baris perintah -target untuk menentukan target yang berbeda. Contohnya:

msbuild <file name>.proj -target:Clean

Sakelar -target dapat disingkat menjadi -t dan dapat menentukan lebih dari satu target. Misalnya, untuk menggunakan target Clean maka target Compile, ketik:

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>