Novos métodos para manipulando propriedades (MSBuild) e itens
A partir de MSBuild 3.5, você pode fazer o seguinte:
Defina um agrupar de definição de item contém metadados que se aplica a todos os itens de projeto.
Dinamicamente criar, excluir, agrupar ou alterar propriedades, itens e metadados de item diretamente em um grupo de item.Você pode fazer isso em vez de usar a tarefa CreateItem e a tarefa CreateProperty.
Grupos de definição de item
TheItemDefinitionGroup elemento permite que você defina um conjunto de definições de item, que são valores de metadados que são aplicados a todos os itens no projeto, por padrão. Para obter mais informações, consulte Definições de item.
Ajustar dinamicamente os metadados em um agrupar de item
MSBuild usa o Elemento ItemGroup (MSBuild) e o Elemento PropertyGroup (MSBuild) para declarar estaticamente itens e propriedades. In MSBuild 2.0, quando você deseja criar ou modificar propriedades e os itens durante a compilação, você precisava usar o Tarefa CreateItem ou o Tarefa CreateProperty. Esse processo era complicado e não oferecia suporte a atualizações dinâmicas muito bem.No entanto, MSBuild 3.5 permite criar, excluir, agrupar ou alterar propriedades, itens e metadados de item diretamente em um grupo de item dinamicamente.
comparar os exemplos a seguir.Exemplo 1 mostra como usar a tarefa CreateItem para adicionar um parâmetro de tarefa e para criar uma nova lista de itens com os metadados.Exemplo 3 mostra o novo método de adicionar metadados diretamente no ItemGroup.
Exemplo 1: Um exemplo simples de adicionar um parâmetro de tarefa usando a tarefa CreateItem.O primeiro destino usa a tarefa CreateItem para criar uma nova lista do item chamada CultureResource dinamicamente.O segundo destino adiciona novos metadados, chamado TargetDirectory, para todos os recursos de cultura na lista original.
<Target Name="GenerateBeforeCompile">
<CreateItem Include="SomeGeneratedCode.cs">
<Output TaskParameter="Include" ItemName="Compile" />
</CreateItem>
</Target>
<Target Name="ProcessCultureResources">
<CreateItem Include="@(EmbeddedResource)"
Condition="'%(Culture)' != ''"
AdditionalMetadata="TargetDirectory=%
(EmbeddedResource.Culture)">
<Output TaskParameter="Include" ItemName="CultureResource" />
</CreateItem>
</Target>
Exemplo 2: Os resultados dos exemplos anteriores agora podem ser obtidos com a inclusão de parâmetros e metadados diretamente no ItemGroup.
<Target Name="GenerateBeforeCompile">
<ItemGroup>
<Compile Include="SomeGeneratedCode.cs" />
</ItemGroup>
</Target>
<Target Name="ProcessCultureResources">
<ItemGroup>
<CultureResource Include="@(EmbeddedResource)"
Condition="'%(EmbeddedResource.Culture)' != ''">
<TargetDirectory>%(EmbeddedResource.Culture) </TargetDirectory>
</CultureResource>
</ItemGroup>
</Target>
Removendo itens
Para omitir os itens de listas em versões anteriores do MSBuild, você precisava criar novas listas. Agora, no entanto, é possível diretamente remover itens usando o novo parâmetro remover, sistema autônomo mostrado pelo seguinte:
<ItemGroup>
<!—Remove *.licx from the EmbeddedResource list - ->
<EmbeddedResource Remove="*.licx" />
<!—Or remove items in @(licx) from EmbeddedResource list -- >
<EmbeddedResource Remove="@(licx)" />
</ItemGroup>
Consulte também
Conceitos
Referência de esquema do arquivo de projeto do MSBuild