Bagikan melalui


Elemen item (MSBuild)

Berisi item yang ditentukan pengguna dan metadatanya. Setiap item yang digunakan dalam proyek MSBuild harus ditentukan sebagai anak dari ItemGroup elemen.

<Proyek>
  <Grup Item>
   <Benda>

Syntax

<Item Include="*.cs"
        Exclude="MyFile.cs"
        Condition="'String A'=='String B'">
    <ItemMetadata1>...</ItemMetadata1>
    <ItemMetadata2>...</ItemMetadata2>
</Item>

Tentukan metadata sebagai atribut

Anda dapat menentukan metadata item sebagai atribut untuk sebagai elemen turunan. Metadata apa pun dengan nama yang tidak bertentangan dengan daftar atribut saat ini dapat dinyatakan sebagai atribut.

Misalnya, untuk menentukan daftar paket NuGet, Anda biasanya akan menggunakan sesuatu seperti sintaks berikut.

<ItemGroup>
  <PackageReference Include="Newtonsoft.Json">
    <Version>9.0.1-beta1<Version>
  </PackageReference>
</ItemGroup>

Namun, sekarang, Anda dapat meneruskan Version metadata sebagai atribut, seperti dalam sintaks berikut:

<ItemGroup>
  <PackageReference Include="Newtonsoft.Json" Version="9.0.1-beta1" />
</ItemGroup>

Atribut dan elemen

Bagian berikut menjelaskan atribut, elemen turunan, dan elemen induk.

Attributes

Attribute Description
Include Atribut opsional.

File atau kartubebas yang akan disertakan dalam daftar item.
Exclude Atribut opsional.

File atau kartubebas yang akan dikecualikan dari daftar item.
Condition Atribut opsional.

Kondisi yang akan dievaluasi. Untuk informasi selengkapnya, lihat Syarat-syarat.
Remove Atribut opsional.

File atau kartubebas yang akan dihapus dari daftar item.

MatchOnMetadata Atribut opsional.

Memodifikasi Remove atribut yang mereferensikan item lain untuk dicocokkan pada nama metadata yang ditentukan alih-alih cocok pada nilai item yang dirujuk.

Atribut ini hanya valid jika ditentukan bersama dengan Remove atribut yang hanya berisi referensi ke item lain (misalnya, Remove="@(Compile);@(Content)"). Detail selengkapnya dalam Item.
MatchOnMetadataOptions Atribut opsional.

Menentukan strategi pencocokan string yang digunakan oleh MatchOnMetadata. Nilai yang mungkin adalah CaseSensitive, CaseInsensitive, atau PathLike. Nilai defaultnya adalah CaseInsensitive.
KeepDuplicates Atribut opsional.

Menentukan apakah item harus ditambahkan ke grup target jika merupakan duplikat yang tepat dari item yang ada. Jika item sumber dan target memiliki nilai yang sama Include tetapi metadata yang berbeda, item ditambahkan bahkan jika KeepDuplicates diatur ke false. Untuk informasi selengkapnya, lihat item .

Atribut ini hanya valid jika ditentukan untuk item dalam ItemGroup yang ada di Target.
KeepMetadata Atribut opsional.

Metadata untuk item sumber yang akan ditambahkan ke item target. Hanya metadata yang namanya ditentukan dalam daftar yang dibatasi titik koma yang ditransfer dari item sumber ke item target. Untuk informasi selengkapnya, lihat item .

Atribut ini hanya valid jika ditentukan untuk item dalam ItemGroup yang ada di Target.
RemoveMetadata Atribut opsional.

Metadata untuk item sumber tidak ditransfer ke item target. Semua metadata ditransfer dari item sumber ke item target kecuali metadata yang namanya terkandung dalam daftar nama yang dibatasi titik koma. Untuk informasi selengkapnya, lihat item .

Atribut ini hanya valid jika ditentukan untuk item dalam ItemGroup yang ada di Target.
Update Atribut opsional. (Hanya tersedia untuk proyek .NET Core di Visual Studio 2017 atau yang lebih baru.)

Memungkinkan Anda mengubah metadata item; biasanya digunakan untuk mengambil alih metadata default item tertentu setelah sekelompok item pada awalnya ditentukan (seperti dengan kartubebas).

Atribut ini hanya valid jika ditentukan untuk item dalam ItemGroup yang tidak ada dalam Target.

Elemen turunan

Elemen Description
ItemMetadata Kunci metadata item yang ditentukan pengguna, yang berisi nilai metadata item. Mungkin ada nol atau lebih ItemMetadata elemen dalam item.

MSBuild menginterpretasikan elemen anak pada elemen item sebagai metadata item.

Elemen induk

Elemen Description
Grup Item Elemen pengelompokan untuk item.

Komentar

Item elemen menentukan input ke dalam sistem build, dan dikelompokkan ke dalam koleksi item berdasarkan nama koleksi yang ditentukan pengguna. Koleksi item ini dapat digunakan sebagai parameter untuk tugas, yang menggunakan item individual dalam koleksi untuk melakukan langkah-langkah proses build. Untuk informasi selengkapnya, lihat item .

Menggunakan notasi @(<myType>) memungkinkan kumpulan item jenis <myType> untuk diperluas ke daftar string yang dibatasi titik koma, dan diteruskan ke parameter. Jika parameter berjenis string, maka nilai parameter adalah daftar elemen, dipisahkan oleh titik koma. Jika parameter adalah array string (string[]), maka setiap elemen dimasukkan ke dalam array berdasarkan lokasi titik koma. Jika parameter tugas berjenis ITaskItem[], maka nilainya adalah konten kumpulan item bersama dengan metadata apa pun yang dilampirkan. Untuk memisahkan setiap item dengan menggunakan karakter selain titik koma, gunakan sintaks @(<myType>, '<pemisah>').

Mesin MSBuild dapat mengevaluasi wildcard seperti * dan dan ? wildcard rekursif seperti /**/*.cs. Untuk informasi selengkapnya, lihat item .

Examples

Contoh kode berikut menunjukkan cara mendeklarasikan dua item jenis CSFile. Item kedua yang dideklarasikan berisi metadata yang telah MyMetadata diatur ke HelloWorld.

<ItemGroup>
    <CSFile Include="engine.cs; form.cs" />
    <CSFile Include="main.cs" >
        <MyMetadata>HelloWorld</MyMetadata>
    </CSFile>
</ItemGroup>

Contoh kode berikut menunjukkan cara menggunakan Update atribut untuk memodifikasi metadata dalam file yang disebut somefile.cs yang disertakan melalui glob. (Hanya tersedia untuk proyek .NET Core di Visual Studio 2017 atau yang lebih baru.)

<ItemGroup>
    <Compile Update="somefile.cs">  // or Update="*.designer.cs"
        <MetadataKey>MetadataValue</MetadataKey>
    </Compile>
</ItemGroup>

Lihat juga