Используя MSBuild, как создать динамическую строку из итерации по файлам в ItemGroup?

Я должен создать несколько/testcontainer: параметры для питания в задачу, что MsTest должностного лица.

У меня есть следующее:

  <ItemGroup>
    <TestFiles Include="$(ProjectPath)\**\UnitTest.*.dll" />
  </ItemGroup>

для каждого соответствия в TestFiles я хотел бы создать строку как так:

"/testcontainer:UnitTest.SomeLibrary1.dll"
"/testcontainer:UnitTest.SomeLibrary2.dll"
"/testcontainer:UnitTest.SomeLibrary3.dll"

Я пытаюсь использовать внутренности MSBuild, не имея необходимость создавать пользовательскую задачу, действительно ли это возможно?

TIA

6
задан RyBolt 4 May 2010 в 20:04
поделиться

2 ответа

Это действительно зависит от использования этого в дальнейшем. Например, задача, которой вы ее отправляете, принимает ли она в списке элементов и хотите ли вы вызывать ее один или несколько раз?

Если вы хотите вызвать ее один раз, используйте @ (...) синтаксис, и если вы хотите вызывать его много раз, вы выполняете пакетную обработку с синтаксисом% (...).

Для однократного вызова

<Message Text="Test Files: @(TestFiles->'/testcontainer:%(RecursiveDir)%(Filename)%(Extension)')"/>

Для многократного вызова

<Message Text="Test Files: /testcontainer:%(TestFiles.RecursiveDir)%(TestFiles.Filename)%(TestFiles.Extension)"/>

Дополнительная информация о пакетной обработке на http://sedotech.com/Resources#batching

6
ответ дан 16 December 2019 в 21:36
поделиться

Попробуйте это:?

<Message Text="TestFiles= @(TestFiles-> '&quot;%(Fullpath)&quot;', ' ')" />

Ссылки:

2
ответ дан 16 December 2019 в 21:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: