PostBuildEvent
基本的に、たとえばと同じ動作が必要なので、どのように動作するかを調べましMicrosoft.Common.Targets
た(このファイルは、msbuildがどのように使用されるかについての優れた洞察を常に提供します)。解決策は次のとおりです。
<PropertyGroup>
<RunPostBuildEvent>OnOutputUpdated</RunPostBuildEvent>
</PropertyGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Target Name="RunWhenBuild" AfterTargets="CoreBuild"
Condition="'$(_AssemblyTimestampBeforeCompile)'!='$(_AssemblyTimestampAfterCompile)'">
<Message Importance="high" Text="RunWhenBuild!!"/>
</Target>
そして、これが起こっていることです。ターゲットの依存関係の値で名前が付けられたプロパティがある場合RunPostBuildEvent
、ビルドの前後に出力ファイルのタイムスタンプが最終的に記録されます。そして、それらが等しい場合、出力は構築されませんでした。したがって、残っているのは、ターゲットを実行して、これらのタイムスタンプをチェックすることだけです。OnOutputUpdated
CoreBuild
CoreBuild