Создать ItemGroup строк в MSBuild - PullRequest
       38

Создать ItemGroup строк в MSBuild

0 голосов
/ 17 августа 2010

Я хочу создать «ItemGroup» из произвольных строк / имен для использования преобразований MSBuild, например:

<ItemGroup>
    <Categories>First</Categories>
    <Categories>Second</Categories>
</ItemGroup>

Затем я хочу передать преобразование этих категорий в консольное приложение, например ::10000

/c @(Categories, ' /c ')

Причина, по которой я говорю «ItemGroup» в кавычках, заключается в том, что я не уверен, применимо ли для меня использование ItemGroups таким образом - насколько я ничего не вижу в документации, говорится, что ItemGroups должны быть файлами, однако использование вышеуказанного приводит к сообщению об ошибке из-за отсутствия обязательного атрибута «Включить».

  • Есть ли способ сделать это с помощью ItemGroups?
  • В качестве альтернативы, есть ли лучший способ достижения вышеуказанного без использования ItemGroups?

1 Ответ

6 голосов
/ 17 августа 2010

Вы можете использовать произвольную строку, а также файлы в Item, но вы должны использовать этот синтаксис:

<ItemGroup>
  <Categories Include="First"/>
  <Categories Include="Second"/>
</ItemGroup>

Единственное отличие при использовании Item с произвольной строкой состоит в том, что некоторые метаданные будут бессмысленными. (%(Categories.FullPath) например)

Затем вы можете использовать ваш Предмет для выполнения такой команды:

<Target Name="ExecCommand">
  <Exec Command="YourProgram.exe /c @(Categories, ' /c ')"/>

  <!-- Using transformation -->
  <Exec Command="YourProgram.exe @(Categories -> '/c %(Identity)')"/>
</Target>
...