Bagikan melalui


Pilih file yang akan dibuat

Saat Anda membuat proyek yang berisi beberapa file, Anda dapat mencantumkan setiap file secara terpisah dalam file proyek, atau Anda dapat menggunakan wildcard untuk menyertakan semua file dalam satu direktori atau sekumpulan direktori berlapis.

Tentukan input

Item mewakili input untuk build. Untuk informasi selengkapnya tentang item, lihat Item.

Untuk menyertakan file untuk build, file tersebut harus disertakan dalam daftar item dalam file proyek MSBuild. Beberapa file dapat ditambahkan ke daftar item dengan menyertakan file satu per satu atau menggunakan kartubebas untuk menyertakan banyak file sekaligus.

Untuk mendeklarasikan item satu per satu

  • Gunakan atribut Include yang mirip dengan hal berikut ini:

    <CSFile Include="form1.cs"/>

    atau

    <VBFile Include="form1.vb"/>

    Catatan

    Jika item dalam koleksi item tidak berada dalam direktori yang sama dengan file proyek, Anda harus menentukan jalur lengkap atau relatif ke item. Sebagai contoh: Include="..\..\form2.cs".

Untuk mendeklarasikan beberapa item

  • Gunakan atribut Include yang mirip dengan hal berikut ini:

    <CSFile Include="form1.cs;form2.cs"/>

    atau

    <VBFile Include="form1.vb;form2.vb"/>

Tentukan input dengan kartubebas

Anda juga dapat menggunakan kartubebas untuk menyertakan semua file secara rekursif atau hanya file tertentu dari subdirektori sebagai input untuk build. Untuk informasi selengkapnya tentang kartubebas, lihat Item

Contoh berikut didasarkan pada proyek yang berisi file grafis di direktori dan subdirektori berikut, dengan file proyek yang terletak di direktori Proyek:

Project\Images\BestJpgs

Project\Images\ImgJpgs

Project\Images\ImgJpgs\Img1

Untuk menyertakan semua file .jpg dalam direktori dan subdirektori Gambar

  • Gunakan atribut berikut Include:

    Include="Images\**\*.jpg"

Untuk menyertakan semua file .jpg yang dimulai dengan img

  • Gunakan atribut berikut Include:

    Include="Images\**\img*.jpg"

Untuk menyertakan semua file dalam direktori dengan nama yang berakhiran jpg

  • Gunakan salah satu atribut Include berikut:

    Include="Images\**\*jpgs\*.*"

    atau

    Include="Images\**\*jpgs\*"

Meneruskan item ke tugas

Dalam file proyek, Anda bisa menggunakan notasi @() dalam tugas untuk menentukan seluruh daftar item sebagai input untuk build. Anda dapat menggunakan notasi ini apakah Anda mencantumkan semua file secara terpisah atau menggunakan wildcard.

Untuk menggunakan semua File Visual C# atau Visual Basic sebagai input

  • Gunakan atribut Include yang mirip dengan hal berikut ini:

    <CSC Sources="@(CSFile)">...</CSC>

    atau

    <VBC Sources="@(VBFile)">...</VBC>

Catatan

Anda harus menggunakan kartubebas dengan item untuk menentukan input untuk build; Anda tidak dapat menentukan input menggunakan atribut Sources dalam tugas MSBuild seperti Csc atau Vbc. Contoh berikut tidak valid dalam file proyek:

<CSC Sources="*.cs">...</CSC>

Contoh 1

Contoh kode berikut menunjukkan proyek yang menyertakan semua file input secara terpisah.

<Project DefaultTargets="Compile"
    xmlns="http://schemas.microsoft.com/developer/msbuild/2003" >
    <PropertyGroup>
        <Builtdir>built</Builtdir>
    </PropertyGroup>

    <ItemGroup>
        <CSFile Include="Form1.cs"/>
        <CSFile Include="AssemblyInfo.cs"/>

        <Reference Include="System.dll"/>
        <Reference Include="System.Data.dll"/>
        <Reference Include="System.Drawing.dll"/>
        <Reference Include="System.Windows.Forms.dll"/>
        <Reference Include="System.XML.dll"/>
    </ItemGroup>

    <Target Name="PreBuild">
        <Exec Command="if not exist $(builtdir) md $(builtdir)"/>
    </Target>

    <Target Name="Compile" DependsOnTargets="PreBuild">
        <Csc Sources="@(CSFile)"
            References="@(Reference)"
            OutputAssembly="$(builtdir)\$(MSBuildProjectName).exe"
            TargetType="exe" />
    </Target>
</Project>

Contoh 2

Contoh kode berikut menggunakan kartubebas untuk menyertakan semua file .cs.

<Project DefaultTargets="Compile"
    xmlns="http://schemas.microsoft.com/developer/msbuild/2003" >

    <PropertyGroup>
        <builtdir>built</builtdir>
    </PropertyGroup>

    <ItemGroup>
        <CSFile Include="*.cs"/>

        <Reference Include="System.dll"/>
        <Reference Include="System.Data.dll"/>
        <Reference Include="System.Drawing.dll"/>
        <Reference Include="System.Windows.Forms.dll"/>
        <Reference Include="System.XML.dll"/>
    </ItemGroup>

    <Target Name="PreBuild">
        <Exec Command="if not exist $(builtdir) md $(builtdir)"/>
    </Target>

    <Target Name="Compile" DependsOnTargets="PreBuild">
        <Csc Sources="@(CSFile)"
            References="@(Reference)"
            OutputAssembly="$(builtdir)\$(MSBuildProjectName).exe"
            TargetType="exe" />
    </Target>
</Project>