Elemento Item (MSBuild)
Contém um item definido pelo usuário e seus metadados. Cada item usado em um projeto MSBuild deve ser especificado como o filho de um elemento ItemGroup.
<Item Include="*.cs" Exclude="MyFile.cs" Remove="RemoveFile.cs" Condition="'String A'=='String B'" > <ItemMetadata1>...</ItemMetadata1> <ItemMetadata2>...</ItemMetadata2> </Item>
Atributos e elementos
As seções a seguir descrevem atributos, elementos filho e elementos pai.
Atributos
Atributo |
Descrição |
---|---|
Include |
Atributo obrigatório. O arquivo ou curinga a ser incluído na lista de itens. |
Exclude |
Atributo opcional. O arquivo ou curinga a ser excluído da lista de itens. |
Condition |
Atributo opcional. A condição a ser avaliada. Para obter mais informações, consulte Condições do MSBuild. |
Remove |
Atributo opcional. O arquivo ou curinga a ser removido da lista de itens. Esse atributo será válido apenas se for especificado para um item em uma ItemGroup que esteja em um Target. |
KeepMetadata |
Atributo opcional. Os metadados dos itens de origem a serem adicionados nos itens de destino. Apenas os metadados cujos nomes são especificados na lista delimitada por ponto e vírgula são transferidos de um item de origem para um item de destino. Para obter mais informações, consulte Itens do MSBuild. Esse atributo será válido apenas se for especificado para um item em uma ItemGroup que esteja em um Target. |
RemoveMetadata |
Atributo opcional. Os metadados dos itens de origem que não serão transferidos para os itens de destino. Todos os metadados são transferidos de um item de origem para um item de destino, exceto metadados cujos nomes estejam contidos na lista de nomes separados por ponto e vírgula. Para obter mais informações, consulte Itens do MSBuild. Esse atributo será válido apenas se for especificado para um item em uma ItemGroup que esteja em um Target. |
KeepDuplicates |
Atributo opcional. Especifica se um item deverá ser adicionado ao grupo de destino se for uma duplicata exata de um item existente. Se o item de origem e de destino tiverem o mesmo valor Include, mas metadados diferentes, o item será adicionado mesmo se KeepDuplicates estiver definido como false. Para obter mais informações, consulte Itens do MSBuild. Esse atributo será válido apenas se for especificado para um item em uma ItemGroup que esteja em um Target. |
Elementos filho
Elemento |
Descrição |
---|---|
Uma chave de metadados de item definido pelo usuário, que contém o valor de metadados do item. Pode ser que não haja nenhum ou mais de um elemento ItemMetadata em um item. |
Elementos pai
Elemento |
Descrição |
---|---|
Elemento grouping para itens. |
Comentários
Os elementos Item definem entradas no sistema de compilação e são agrupados em coleções de itens com base em seus nomes de coleção definida pelo usuário. Essas coleções de itens podem ser usadas como parâmetros para tarefas, que usam os itens individuais nas coleções para executar as etapas do processo de compilação. Para obter mais informações, consulte Itens do MSBuild.
O uso da notação @(myType) permite que uma coleção de itens do tipo myType seja expandida para uma lista delimitada por ponto e vírgula de cadeias de caracteres e passadas para um parâmetro. Se o parâmetro for do tipo string, então o valor do parâmetro será a lista de elementos, separados por ponto e vírgula. Se o parâmetro for uma matriz de cadeias de caracteres (string[]), então cada elemento será inserido na matriz com base na localização dos pontos e vírgulas. Se o parâmetro de tarefa for do tipo ITaskItem[], então o valor é o conteúdo da coleção de itens juntamente com quaisquer metadados anexados. Para delimitar cada item usando um caractere que não seja um ponto e vírgula, use a sintaxe @(myType, 'separador').
O mecanismo MSBuild pode avaliar curingas como * e ? e curingas recursivos como /**/*.cs. Para obter mais informações, consulte Itens do MSBuild.
Exemplo
O exemplo de código a seguir mostra como declarar dois itens do tipo CSFile. O segundo item declarado contém metadados que possuem MyMetadata definidos como HelloWorld.
<ItemGroup>
<CSFile Include="engine.cs; form.cs" />
<CSFile Include="main.cs" >
<MyMetadata>HelloWorld</MyMetadata>
</CSFile>
</ItemGroup>