Привет, у меня есть визуальный студийный проект, который включает postbuildevents в следующей форме:
MyTool.exe $ (ProjectDir) somesrcfile.txt $ (TargetDir) sometargetfile.bin
Теперь я хочу добавить некоторую логику о том, что эти шаги выполняются, только если файлы изменились. В пудокоде:
if (somesrcfile.txt новее sometargetfile.bin)
{
MyTool.exe $ (ProjectDir) somesrcfile.txt $ (TargetDir) sometargetfile.bin
}
Могу ли я сделать это с помощью MsBuild?
EDIT:
Я только попробовал это с простой командой копирования, но это, кажется, не работает. Также сообщение не отображается, когда я строю решение.
<ItemGroup>
<MyTextFile Include="*.txt" />
</ItemGroup>
<Target Name="Build" Inputs="@(MyTextFile)" Outputs="@(MyTextFile->'%(Filename).bin')">
<CustomBuild>
<Message>Encoding files...</Message>
<Command>
copy %(Identity) %(Filename).bin
</Command>
<Outputs>$(OutDir)%(Identity)</Outputs>
</CustomBuild>
</Target>