Sdílet prostřednictvím


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ů

Metadata položky můžete zadat jako atributy pro podřízené prvky. Všechna metadata s názvem, který není v konfliktu s aktuálním seznamem atributů, lze 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.

Attributes

Vlastnost Description
Include Volitelný atribut.

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

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

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

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

MatchOnMetadata Volitelný 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 Volitelný 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 Volitelný 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 . Pro více informací se podívejte na 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 Volitelný 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. Pro více informací se podívejte na 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 Volitelný 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. Pro více informací se podívejte na 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 Volitelný 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

prvek Description
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ů.

Nástroj MSBuild interpretuje podřízené elementy prvků položky jako metadata položky.

Nadřazené prvky

prvek Description
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í. Pro více informací se podívejte na 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 zástupné kóty a ? rekurzivní zástupné cardy, například /**/*.cs. Pro více informací se podívejte na Položky.

Examples

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é