我在TFS中的AfterGet目标中有以下内容。
<ItemGroup>
<AssemblyInfoFiles Include="$(SolutionRoot)\**\*assemblyinfo.cs" />
</ItemGroup>
<WriteLinesToFile
File="@(AssemblyInfoFiles)"
Lines="AssemblyInformationalVersion("$(LabelName)")]"
Overwrite="false"/>
ItemGroup包含多个文件,但WriteLinesToFile只需要一个文件。
并记录以下错误: 错误MSB4094:“XXXX; YYYY; ZZZZ”是“WriteLinesToFile”任务的“File”参数的无效值。多个项目无法传递到“Microsoft.Build.Framework.ITaskItem”类型的参数中。
如何将ItemGroup中的每个项目传递给WriteLinesToFile任务?
答案 0 :(得分:9)
您可以使用批处理:尝试
<ItemGroup>
<AssemblyInfoFiles Include="$(SolutionRoot)\**\*assemblyinfo.cs" />
</ItemGroup>
<WriteLinesToFile
File="%(AssemblyInfoFiles.FullPath)"
Lines="AssemblyInformationalVersion("$(LabelName)")]"
Overwrite="false"/>
希望它有所帮助!