多个文件上的MsBuild WriteLinesToFile任务

时间:2010-03-17 11:25:08

标签: msbuild

我在TFS中的AfterGet目标中有以下内容。

<ItemGroup>
  <AssemblyInfoFiles Include="$(SolutionRoot)\**\*assemblyinfo.cs" />
</ItemGroup>
<WriteLinesToFile
        File="@(AssemblyInfoFiles)"
        Lines="AssemblyInformationalVersion(&quot;$(LabelName)&quot;)]"
        Overwrite="false"/>

ItemGroup包含多个文件,但WriteLinesToFile只需要一个文件。

并记录以下错误: 错误MSB4094:“XXXX; YYYY; ZZZZ”是“WriteLinesToFile”任务的“File”参数的无效值。多个项目无法传递到“Microsoft.Build.Framework.ITaskItem”类型的参数中。

如何将ItemGroup中的每个项目传递给WriteLinesToFile任务?

1 个答案:

答案 0 :(得分:9)

您可以使用批处理:尝试

<ItemGroup>
  <AssemblyInfoFiles Include="$(SolutionRoot)\**\*assemblyinfo.cs" />
</ItemGroup>
<WriteLinesToFile
        File="%(AssemblyInfoFiles.FullPath)"
        Lines="AssemblyInformationalVersion(&quot;$(LabelName)&quot;)]"
        Overwrite="false"/>

希望它有所帮助!