什么是MSBuild - > (箭头/破折号更大/ - >)运算符吗?

时间:2015-12-12 05:48:15

标签: visual-studio msbuild

->(或->)运算符在MSBuild中的作用是什么?

来自其他问题的一些示例代码:File Tracker Log file format

<!-- Appended tlog to track custom build events -->
<WriteLinesToFile
  File="$(IntDir)$(ProjectName).write.1.tlog"
  Lines="@(CustomBuildStep-&gt;'^%(Identity)');@(CustomBuildStep-&gt;MetaData('Outputs')-&gt;FullPath()-&gt;Distinct())"/>

加分问题@(CustomBuildStep-&gt;'^%(Identity)')在上述代码中做了什么?

1 个答案:

答案 0 :(得分:10)

MSBuild中的->'^%(Identity)'运算符是transformation operator。它通过使用原始项目的元数据替换右侧的字符串,将项目列表转换为新项目列表。

task batching文档中部分描述了Identity魔法。 %元数据只是值本身,因此转换只是在&#34; ^&#34;之前。由于WriteLinesToFile sigil,它还会导致批处理,因此对每个CustomBuildStep项执行整个public class RootObject { public Person person { get; set; } } public class Person { public string name { get; set; } public string country { get; set; } public string city { get; set; } public string phone { get; set; } } 任务。