为列表中的每个项运行MsBuild Exec

为列表中的每个项运行MsBuild Exec,msbuild,Msbuild,我正在尝试从文本文件加载文件名列表,然后对从文本文件检索到的每个条目运行Exec任务 我有一个文件,我们称之为SomeFile.txt,包含以下内容: FileA.file FileB.file FileC.file 我为此提供的MsBuild代码如下所示(不起作用:) 这会给我一个错误,说明我需要指定项名称,但如果我使用任何类似于%(scriptItems.item)或%(itemname.scriptItems)的东西,MsBuild只会将一个空格而不是%(scriptItems) 好

我正在尝试从文本文件加载文件名列表,然后对从文本文件检索到的每个条目运行Exec任务

我有一个文件,我们称之为SomeFile.txt,包含以下内容:

FileA.file
FileB.file
FileC.file
我为此提供的MsBuild代码如下所示(不起作用:)


这会给我一个错误,说明我需要指定项名称,但如果我使用任何类似于%(scriptItems.item)或%(itemname.scriptItems)的东西,MsBuild只会将一个空格而不是%(scriptItems)

好吧,我想出来了

只需要使用

%(scriptItems.Identity)

<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>