不幸的是,这不起-6ren">
gpt4 book ai didi

xml - 使用通配符将项目组转换为另一个项目组

转载 作者:行者123 更新时间:2023-12-05 02:24:55 26 4
gpt4 key购买 nike

我有一个目标内定义的目录列表:

<Target>
<ItemGroup>
<FooDirs Include="Foo\Dir1" />
<FooDirs Include="Foo\Dir2" />
</ItemGroup>
<Target>

现在我想在 @(FooDirs) 中创建所有文件的列表:

<ItemGroup>
<FooFiles Include="@(FooDirs -> '%(Identity)\**\*')" />
</ItemGroup>

不幸的是,这不起作用,结果列表包含文字字符串:"Foo\Dir1\**\*;Foo\Dir2\**\*" .但是,如果我使用已弃用的 <CreateItem>它工作正常的任务:

<CreateItem Include="@(FooDirs -> '%(Identity)\**\*')">
<Output TaskParameter="Include" ItemName="FooFiles" />
</CreateItem>

这是一个错误还是我遗漏了什么?

最佳答案

试试这个,它会使用任务批处理正确地创建 FooFiles:

<Target Name="Foo"> 
<ItemGroup>
<FooDirs Include="Foo\Dir1" />
<FooDirs Include="Foo\Dir2" />
</ItemGroup>
<ItemGroup>
<FooFiles Include="%(FooDirs.Identity)\**\*" />
</ItemGroup>
<Message Text="%(FooFiles.Identity)" />
</Target>

(摘自《MSBuild Trickery》技巧#5)

关于xml - 使用通配符将项目组转换为另一个项目组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7268040/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com