Item – element (MSBuild)

Obsahuje uživatelem definovanou položku a její metadata. Každá položka použitá v projektu MSBuild musí být zadána jako podřízený prvek ItemGroup .

<Projekt>
 <ItemGroup>
  <Položka>

Syntaxe

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

Zadání metadat jako atributů

V MSBuildu 15.1 nebo novějším se dají všechna metadata s názvem, který není v konfliktu s aktuálním seznamem atributů, volitelně vyjádřit jako atribut.

Pokud například chcete zadat seznam balíčků NuGet, normálně byste použili něco jako následující syntaxi.

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

Teď ale můžete metadata předat Version jako atribut, například v následující syntaxi:

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

Atributy a prvky

Následující části popisují atributy, podřízené prvky a nadřazené prvky.

Atributy

Atribut Popis
Include Nepovinný atribut.

Soubor nebo zástupný znak, který chcete zahrnout do seznamu položek.
Exclude Nepovinný atribut.

Soubor nebo zástupný znak, který chcete vyloučit ze seznamu položek.
Condition Nepovinný atribut.

Podmínka, která se má vyhodnotit. Další informace naleznete v tématu Podmínky.
Remove Nepovinný atribut.

Soubor nebo zástupný znak, který chcete odebrat ze seznamu položek.

MatchOnMetadata Nepovinný atribut.

Remove Upraví atributy, které odkazují na jiné položky tak, aby odpovídaly zadaným názvům metadat místo toho, aby odpovídaly hodnotám odkazovaných položek.

Tento atribut je platný pouze v případě, že je zadaný společně s atributem Remove , který obsahuje pouze odkazy na jiné položky (například Remove="@(Compile);@(Content)"). Další podrobnosti v položkách
MatchOnMetadataOptions Nepovinný atribut.

Určuje strategii porovnávání řetězců, kterou MatchOnMetadatapoužívá . Možné hodnoty jsou CaseSensitive, CaseInsensitivenebo PathLike. Výchozí hodnota je CaseInsensitive.
KeepDuplicates Nepovinný atribut.

Určuje, jestli má být položka přidána do cílové skupiny, pokud se jedná o přesnou duplicitu existující položky. Pokud zdroj a cílová položka mají stejnou Include hodnotu, ale různá metadata, přidá se položka i v případě, že KeepDuplicates je nastavena na falsehodnotu . Další informace naleznete v tématu Položky.

Tento atribut je platný pouze v případě, že je určen pro položku v ItemGroup objektu , který je v objektu Target.
KeepMetadata Nepovinný atribut.

Metadata zdrojových položek, která se mají přidat do cílových položek. Pouze metadata, jejichž názvy jsou zadány v seznamu odděleném středníkem, se přenesou ze zdrojové položky do cílové položky. Další informace naleznete v tématu Položky.

Tento atribut je platný pouze v případě, že je určen pro položku v ItemGroup objektu , který je v objektu Target.
RemoveMetadata Nepovinný atribut.

Metadata zdrojových položek, která se nepřenesou do cílových položek. Všechna metadata se přenesou ze zdrojové položky do cílové položky s výjimkou metadat, jejichž názvy jsou obsaženy v seznamu názvů oddělených středníkem. Další informace naleznete v tématu Položky.

Tento atribut je platný pouze v případě, že je určen pro položku v ItemGroup objektu , který je v objektu Target.
Update Nepovinný atribut. (K dispozici pouze pro projekty .NET Core v sadě Visual Studio 2017 nebo novější.)

Umožňuje upravit metadata položky; obvykle se používá k přepsání výchozích metadat konkrétních položek po počátečním zadání skupiny položek (například se zástupným znakem).

Tento atribut je platný pouze v případě, že je určen pro položku v objektu ItemGroup , který není v objektu Target.

Podřízené prvky

Element (Prvek) Popis
ItemMetadata Klíč metadat položky definovaný uživatelem, který obsahuje hodnotu metadat položky. V položce může existovat nula nebo více ItemMetadata prvků.

Nadřazené prvky

Element (Prvek) Popis
ItemGroup Seskupování elementu pro položky

Poznámky

Item elementy definují vstupy do systému sestavení a jsou seskupené do kolekcí položek na základě jejich uživatelsky definovaných názvů kolekcí. Tyto kolekce položek lze použít jako parametry pro úlohy, které používají jednotlivé položky v kolekcích k provedení kroků procesu sestavení. Další informace naleznete v tématu Položky.

Pomocí zápisu @(<myType>) umožňuje rozšíření kolekce položek typu <myType> do seznamu řetězců oddělených středníkem a předání parametru. Pokud je parametr typu string, pak hodnota parametru je seznam prvků oddělený středníky. Pokud je parametr polem řetězců (string[]), každý prvek se vloží do pole na základě umístění středníků. Pokud je parametr úkolu typu ITaskItem[], pak hodnota je obsah kolekce položek společně s připojenými metadaty. Pokud chcete každou položku oddělit jiným znakem než středníkem, použijte syntaxi @(<myType>, '<oddělovač>').

Modul MSBuild může vyhodnotit zástupné cardy, jako *? jsou a rekurzivní zástupné cardy, například /**/*.cs. Další informace naleznete v tématu Položky.

Příklady

Následující příklad kódu ukazuje, jak deklarovat dvě položky typu CSFile. Druhá deklarovaná položka obsahuje metadata, která jsou nastavena MyMetadata na HelloWorld.

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

Následující příklad kódu ukazuje, jak pomocí Update atributu upravit metadata v souboru s názvem somefile.cs , který byl zahrnut prostřednictvím globu. (K dispozici pouze pro projekty .NET Core v sadě Visual Studio 2017 nebo novější.)

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

Viz také