6

我需要创建多个 /testcontainer: 参数来输入执行的 MsTest 的任务。

我有以下内容:

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

对于TestFiles中的每个匹配项,我想构建一个字符串,如下所示:

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

我正在尝试使用 MSBuild 的内部而不必创建自定义任务,这可能吗?

TIA

4

2 回答 2

7

这真的取决于之后的用法。例如,您将其发送到的任务,它是否在项目列表中接受,您想调用它一次还是多次?

如果要调用一次,则使用 @(...) 语法,如果要多次调用它,则使用 %(...) 语法进行批处理。

调用一次

<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

于 2010-05-05T04:47:49.393 回答
2

试试这个:?

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

参考:

于 2010-05-04T22:31:13.343 回答