gpt4 book ai didi

msbuild - 通过 msbuild 中的项目组元数据批处理文件字符串

转载 作者:行者123 更新时间:2023-12-01 04:11:30 27 4
gpt4 key购买 nike

如何通过项目组中传递的元数据以及文件名从文件中批处理字符串?

这是我到目前为止所得到的,但无法弄清楚如何传递初始项目组元数据 Level到生成的项目组 Lines :

<ItemGroup>
<LogFile Include="1.log">
<Level>Warning</Level>
</LogFile>
<LogFile Include="2.log">
<Level>Warning</Level>
</LogFile>
<LogFile Include="3.log">
<Level>Error</Level>
</LogFile>
<ItemGroup>

<ReadLinesFromFile
File="@(LogFile)" >
<Output
TaskParameter="Lines"
ItemName="LogMessage"/>
</ReadLinesFromFile>

<Message Text="%(LogMessage.Identity)" />

我想得到的是:
Warning: (lines from 1.log>
Warning: (lines from 2.log>
Error: (lines from 3.log)

其中警告和错误由 %(LogFile.Level) 给出

最佳答案

由于 <ReadLinesFromFile>,您试图实现的目标似乎是不可能的。不接受 ITaskItem 集合 @(LogFile)作为其 File输入,您必须在任务级别进行批处理 %(LogFile.Identity)

<Project ToolsVersion="4.0" DefaultTargets="PrintOut">
<ItemGroup>
<LogFile Include="1.log">
<Level>Warning</Level>
</LogFile>
<LogFile Include="2.log">
<Level>Warning</Level>
</LogFile>
<LogFile Include="3.log">
<Level>Error</Level>
</LogFile>
</ItemGroup>

<Target Name="ReadLogs">
<ReadLinesFromFile File="%(LogFile.Identity)">
<Output TaskParameter="Lines" ItemName="LogMessage" />
</ReadLinesFromFile>
</Target>

<Target Name="PrintOut" DependsOnTargets="ReadLogs">
<Message Text="%(LogMessage.Identity)" />
</Target>
</Project>

有一些关于 Item Metadata in Task Batching的例子但它们都处理可以处理 ITaskItem 集合输入的任务(如 Copy 等)。

关于msbuild - 通过 msbuild 中的项目组元数据批处理文件字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5868203/

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