我正在尝试向我的 VC++2012 项目添加一个 AfterBuild 任务,该任务仅在输出更改时执行。如果我是对的,在 C# 中,当您添加构建后事件时,您可以选择指定何时运行构建后事件。我尝试添加条件,例如 _SourceItemsToCopyToOutputDirectory 但它没有帮助,无论我是否进行空构建,它都是空的。我发现的唯一属性是 LinkSkippedExecution 但我不确定它是最好的选择。

谢谢你的帮助

最佳答案

Check out this stack overflow question and answer:
您可以根据输出文件的时间戳在构建之前的目标中创建一个属性。

<Target Name="BeforeBuild">
    <PropertyGroup>
      <MyBeforeCompileTimestamp>%(IntermediateAssembly.ModifiedTime)
                 </MyBeforeCompileTimestamp>
    </PropertyGroup>
  </Target>

  <Target Name="AfterBuild">
    <CallTarget Condition="$(MyBeforeCompileTimestamp) !=
          %(IntermediateAssembly.ModifiedTime)" Targets="MyTarget" />
  </Target>

10-07 22:55