Como exibir uma lista de itens separada por vírgulas
Quando você trabalha com o item de lista em Mecanismo de compilação Microsoft (MSBuild), às vezes é útil exibir o conteúdo de que essas listas de itens de uma maneira fácil de ler. Ou então, você pode ter uma tarefa que leva a uma lista de itens separados por uma seqüência de caracteres de separador especial. Em ambos os casos, você pode especificar uma seqüência de caracteres separadores para uma lista de itens.
Separando os itens em uma lista com vírgulas
Por padrão, MSBuild usa o ponto e vírgula para separar itens em uma lista. Por exemplo, considere um Message elemento com o seguinte valor:
<Message Text="This is my list of TXT files: @(TXTFile)"/>
Quando o @(TXTFile) item de lista contém os itens de App1.txt, App2.txt e App3.txt, a mensagem é:
This is my list of TXT files: App1.txt;App2.txt;App3.txt
Se você quiser alterar o comportamento padrão, você pode especificar seu próprio separador. A sintaxe para especificar um separador de lista de item é:
@(ItemListName, '<separator>')
O separador pode ser um único caractere ou uma seqüência de caracteres e deve ser colocado entre aspas simples.
Para inserir uma vírgula e um espaço entre os itens
Use a notação de item semelhante à seguinte:
@(TXTFile, ', ')
Exemplo
Neste exemplo, Exec tarefa executa a ferramenta findstr para localizar seqüências de texto especificado no arquivo, Phrases.txt. O comando findstr, seqüências de pesquisa literal são indicadas pela /c: alternar, isso o separador de item, /c: é inserido entre os itens a @(Phrase) lista de itens.
Neste exemplo, a linha de comando equivalente é:
findstr /i /c:hello /c:world /c:msbuild phrases.txt
<Project DefaultTargets = "Find"
xmlns="https://schemas.microsoft.com/developer/msbuild/2003" >
<ItemGroup>
<Phrase Include="hello"/>
<Phrase Include="world"/>
<Phrase Include="msbuild"/>
</ItemGroup>
<Target Name = "Find">
<!-- Find some strings in a file -->
<Exec Command="findstr /i /c:@(Phrase, ' /c:') phrases.txt"/>
</Target>
</Project>