在多个文件上使用MsBuild WriteLinesToFile任务

4
今日免费次数已满, 请开通会员/明日再来
<ItemGroup>
  <AssemblyInfoFiles Include="$(SolutionRoot)\**\*assemblyinfo.cs" />
</ItemGroup>
<WriteLinesToFile
        File="@(AssemblyInfoFiles)"
        Lines="AssemblyInformationalVersion(&quot;$(LabelName)&quot;)]"
        Overwrite="false"/>

ItemGroup包括多个文件,但WriteLinesToFile仅期望单个文件。

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

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

1个回答

10

你可以使用批处理: 尝试

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

希望这能帮到你!


在发布我的回答之前,我没有看到你的回答,抱歉。 - Morten Lyhr
没问题;o)如果你想在MSBuild中做强大的事情,你应该学习批处理、转换和元数据。 - Cédric Rup

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