visual-c – MSBuild VC2012,如何确保AfterBuild仅在输出更改时运行?

我正在尝试将AfterBuild任务添加到我的VC 2012项目中,该项目仅在输出更改时才会执行.如果我是正确的,那么在C#中添加post-build-event时,您可以选择指定何时运行post-build-event.我尝试添加诸如_SourceItemsToCopyToOutputDirectory之类的条件但它没有帮助,无论我是否正在进行null构建,它都是空的.我找到的唯一属性是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>
点赞