Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MSBUILD对ItemGroup中的重复项进行操作_Msbuild - Fatal编程技术网

MSBUILD对ItemGroup中的重复项进行操作

MSBUILD对ItemGroup中的重复项进行操作,msbuild,Msbuild,我有一个项目组,其中包含一些相互重复的项目。我想在ItemGroup中所有项目的修改版本上执行任务。但是,到目前为止,我还没有找到一种不删除重复项的方法 是否存在这种情况 <ItemGroup> <MyMessage Include="foo" /> <MyMessage Include="bar" /> <MyMessage Include="baz" /> <MyMessage Include="foo" />

我有一个项目组,其中包含一些相互重复的项目。我想在ItemGroup中所有项目的修改版本上执行任务。但是,到目前为止,我还没有找到一种不删除重复项的方法

是否存在这种情况

<ItemGroup>
  <MyMessage Include="foo"  />
  <MyMessage Include="bar"  />
  <MyMessage Include="baz"  />
  <MyMessage Include="foo"  />
  <MyMessage Include="baz"  />
  <MyMessage Include="baz"  />
</ItemGroup>

<Target Name="DemoBug">
  <Message Importance="High" Text="FIRST VERSION USING ItemGroup ..."/>
  <Message Importance="High" Text="@(MyMessage)"/>
  <Message Importance="High" Text="SECOND VERSION USING Batching and Metadata ..."/>
  <Message Importance="High" Text="someprefix;%(MyMessage.Identity);somesuffix"/>
</Target>
第二个版本像我希望的那样多次执行消息任务,但它正在剥离重复项,我不希望它这样做

5>  SECOND VERSION USING Batching and Metadata ...
5>  someprefix;foo;somesuffix
5>  someprefix;bar;somesuffix
5>  someprefix;baz;somesuffix
我想做的事情根本不可能(在这种情况下,也许是时候切换到PowerShell来完成我的任务了),或者有什么合理的方法可以做到这一点


(在我的实际任务中,项目来自ReadLinesFromFile,经过各种处理后,最终将以WriteListFile结束。它工作正常,除非遇到重复的行)

Msbuild任务批处理没有循环。它执行它应该执行的操作,将具有相同元数据值的项分组在批中。在您的示例中,它是按%(标识)分组的

项目转换在您的情况下有效吗?差不多


Msbuild任务批处理未循环。它执行它应该执行的操作,将具有相同元数据值的项分组在批中。在您的示例中,它是按%(标识)分组的

项目转换在您的情况下有效吗?差不多


Msbuild任务批处理未循环。它执行它应该执行的操作,将具有相同元数据值的项分组在批中。在您的示例中,它是按%(标识)分组的

项目转换在您的情况下有效吗?差不多


Msbuild任务批处理未循环。它执行它应该执行的操作,将具有相同元数据值的项分组在批中。在您的示例中,它是按%(标识)分组的

项目转换在您的情况下有效吗?差不多



似乎没有。它不会正确地剥离重复项,但它会将它们全部放在一个消息运行中,并连接这些项。这不是您想要的吗?对于每个项目(包括重复项),您将获得一个修改版本。消息任务正在扁平化为“;”-分隔行,但写入文件应该可以很好地处理它们。。。你也可以使用不同的分隔符,如果你想的话。似乎没有。它不会正确地剥离重复项,但它会将它们全部放在一个消息运行中,并连接这些项。这不是您想要的吗?对于每个项目(包括重复项),您将获得一个修改版本。消息任务正在扁平化为“;”-分隔行,但写入文件应该可以很好地处理它们。。。你也可以使用不同的分隔符,如果你想的话。似乎没有。它不会正确地剥离重复项,但它会将它们全部放在一个消息运行中,并连接这些项。这不是您想要的吗?对于每个项目(包括重复项),您将获得一个修改版本。消息任务正在扁平化为“;”-分隔行,但写入文件应该可以很好地处理它们。。。你也可以使用不同的分隔符,如果你想的话。似乎没有。它不会正确地剥离重复项,但它会将它们全部放在一个消息运行中,并连接这些项。这不是您想要的吗?对于每个项目(包括重复项),您将获得一个修改版本。消息任务正在扁平化为“;”-分隔行,但写入文件应该可以很好地处理它们。。。如果需要,也可以使用不同的分隔符。
5>  SECOND VERSION USING Batching and Metadata ...
5>  someprefix;foo;somesuffix
5>  someprefix;bar;somesuffix
5>  someprefix;baz;somesuffix