Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Innehåller ett användardefinierat objekt och dess metadata. Varje objekt som används i ett MSBuild-projekt måste anges som underordnat ett ItemGroup element.
              <Projekt>
 
              <ItemGroup>
  
              <Sak>
Syntax
<Item Include="*.cs"
        Exclude="MyFile.cs"
        Condition="'String A'=='String B'">
    <ItemMetadata1>...</ItemMetadata1>
    <ItemMetadata2>...</ItemMetadata2>
</Item>
Ange metadata som attribut
Du kan ange objektmetadata som attribut för som underordnade element. Metadata med ett namn som inte står i konflikt med den aktuella listan med attribut kan uttryckas som ett attribut.
Om du till exempel vill ange en lista över NuGet-paket använder du normalt något som liknar följande syntax.
<ItemGroup>
  <PackageReference Include="Newtonsoft.Json">
    <Version>9.0.1-beta1<Version>
  </PackageReference>
</ItemGroup>
Nu kan du dock skicka Version metadata som ett attribut, till exempel i följande syntax:
<ItemGroup>
  <PackageReference Include="Newtonsoft.Json" Version="9.0.1-beta1" />
</ItemGroup>
Attribut och element
I följande avsnitt beskrivs attribut, underordnade element och överordnade element.
Attributes
| Attribute | Description | 
|---|---|
| Include | Valfritt attribut. Filen eller jokertecknet som ska inkluderas i listan med objekt. | 
| Exclude | Valfritt attribut. Filen eller jokertecknet som ska undantas från listan med objekt. | 
| Condition | Valfritt attribut. Villkoret som ska utvärderas. Mer information finns i Villkor. | 
| Remove | Valfritt attribut. Filen eller jokertecknet som ska tas bort från listan med objekt. | 
| MatchOnMetadata | Valfritt attribut. RemoveÄndrar attribut som refererar till andra objekt så att de matchar de angivna metadatanamnen i stället för att matcha de refererade objektens värden.Det här attributet är endast giltigt om det anges tillsammans med ett Removeattribut som endast innehåller referenser till andra objekt (till exempelRemove="@(Compile);@(Content)"). Mer information finns i Objekt. | 
| MatchOnMetadataOptions | Valfritt attribut. Anger den strängmatchningsstrategi som används av MatchOnMetadata. Möjliga värden ärCaseSensitive,CaseInsensitiveellerPathLike. Standardvärdet ärCaseInsensitive. | 
| KeepDuplicates | Valfritt attribut. Anger om ett objekt ska läggas till i målgruppen om det är en exakt dubblett av ett befintligt objekt. Om käll- och målobjektet har samma Includevärde men olika metadata läggs objektet till även omKeepDuplicatesdet är inställt påfalse. Mer information finns i Objekt.Det här attributet är endast giltigt om det har angetts för ett objekt i en ItemGroupsom finns i enTarget. | 
| KeepMetadata | Valfritt attribut. Metadata för källobjekten som ska läggas till i målobjekten. Endast de metadata vars namn anges i den semikolonavgränsade listan överförs från ett källobjekt till ett målobjekt. Mer information finns i Objekt. Det här attributet är endast giltigt om det har angetts för ett objekt i en ItemGroupsom finns i enTarget. | 
| RemoveMetadata | Valfritt attribut. Metadata för källobjekten som inte ska överföras till målobjekten. Alla metadata överförs från ett källobjekt till ett målobjekt utom metadata vars namn finns i den semikolonavgränsade listan med namn. Mer information finns i Objekt. Det här attributet är endast giltigt om det har angetts för ett objekt i en ItemGroupsom finns i enTarget. | 
| Update | Valfritt attribut. (Endast tillgängligt för .NET Core-projekt i Visual Studio 2017 eller senare.) Gör att du kan ändra metadata för ett objekt. används vanligtvis för att åsidosätta standardmetadata för specifika objekt när en grupp objekt ursprungligen har angetts (till exempel med ett jokertecken). Det här attributet är endast giltigt om det har angetts för ett objekt i en ItemGroupsom inte finns i enTarget. | 
Underordnade element
| Komponent | Description | 
|---|---|
| ItemMetadata | En användardefinierad objektmetadatanyckel som innehåller objektets metadatavärde. Det kan finnas noll eller fler ItemMetadataelement i ett objekt. | 
MSBuild tolkar underordnade element på objektelement som objektmetadata.
Överordnade element
| Komponent | Description | 
|---|---|
| ItemGroup | Grupperingselement för objekt. | 
Anmärkningar
              Item element definierar indata i byggsystemet och grupperas i objektsamlingar baserat på deras användardefinierade samlingsnamn. Dessa objektsamlingar kan användas som parametrar för uppgifter, som använder enskilda objekt i samlingarna för att utföra stegen i byggprocessen. Mer information finns i Objekt.
Med notationen @(<myType>) kan en samling objekt av typen <myType> expanderas till en semikolonavgränsad lista med strängar och skickas till en parameter. Om parametern är av typen stringär värdet för parametern listan över element, avgränsade med semikolon. Om parametern är en matris med strängar (string[]) infogas varje element i matrisen baserat på semikolonens plats. Om aktivitetsparametern är av typen ITaskItem[]är värdet innehållet i objektsamlingen tillsammans med eventuella kopplade metadata. Om du vill avgränsa varje objekt med ett annat tecken än ett semikolon använder du syntaxen @(<myType>, '<avgränsare>').
MSBuild-motorn kan utvärdera jokertecken som * och ? rekursiva jokertecken, till exempel /**/*.cs. Mer information finns i Objekt.
Examples
I följande kodexempel visas hur du deklarerar två objekt av typen CSFile. Det andra deklarerade objektet innehåller metadata som har MyMetadata angetts till HelloWorld.
<ItemGroup>
    <CSFile Include="engine.cs; form.cs" />
    <CSFile Include="main.cs" >
        <MyMetadata>HelloWorld</MyMetadata>
    </CSFile>
</ItemGroup>
Följande kodexempel visar hur du använder Update attributet för att ändra metadata i en fil som heter somefile.cs som inkluderades via en glob. (Endast tillgängligt för .NET Core-projekt i Visual Studio 2017 eller senare.)
<ItemGroup>
    <Compile Update="somefile.cs">  // or Update="*.designer.cs"
        <MetadataKey>MetadataValue</MetadataKey>
    </Compile>
</ItemGroup>