多个文件上的MsBuild WriteLinesToFile任务

Mor*_*yhr 3 msbuild

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

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

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

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

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

Céd*_*Rup 9

您可以使用批处理:尝试

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

希望能帮助到你 !