MsBuild针对列表中的每个项目运行Exec

23
我想从一个文本文件加载文件名列表,然后针对从文本文件检索到的每个条目运行Exec任务。
因此,我有一个文件,让我们称其为SomeFile.txt,其中包含以下内容:
FileA.file
FileB.file
FileC.file

这是我为此编写的 MsBuild 代码(不起作用):

<Target Name="runScripts">  

    <ItemGroup>
        <scriptsFile Include="SomeFile.txt" />
    </ItemGroup>        

    <ReadLinesFromFile File="@(scriptsFile)">
        <Output TaskParameter="Lines" ItemName="scriptItems" />
    </ReadLinesFromFile>

    <Message Text="Running Exec for each entry..." />           
    <Exec Command="$(someCommand) %(scriptItems)" />

</Target>

这给我一个错误,说我需要指定一个项目名称,但如果我使用像%(scriptItems.item)或%(itemname.scriptItems)这样的任何内容,MsBuild只会将空白放在%(scriptItems)的位置。

1个回答

32

只需使用 %(scriptItems.Identity) 即可从元数据中获取项名称。这在 MSDN 上有很好的说明。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接