MSBuild - >(箭头/破折号更大/ - >)运算符有什么作用?

Nic*_*mot 5 msbuild visual-studio

什么是->(或->)运算符中的MSBuild吗?

来自另一个问题的一些示例代码:文件跟踪器日志文件格式

<!-- 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())"/>
Run Code Online (Sandbox Code Playgroud)

奖金问题:@(CustomBuildStep-&gt;'^%(Identity)')上面的代码做了什么?

Joh*_*eek 11

->在的MSBuild运算符是变换算子.它通过使用原始项目的元数据替换右侧的字符串,将项目列表转换为新项目列表.

->'^%(Identity)'魔术的部分中描述的任务批处理文件.该Identity元数据只是本身的价值,所以这种转变只是前添加"^".它还会因为%sigil而导致批处理,因此WriteLinesToFile每个CustomBuildStep项目都会执行整个任务.

  • 请注意,` - >`也*用于项目函数https://msdn.microsoft.com/en-us/library/ee886422.aspx (4认同)