Если вы понимаете идею DependsOnTargets, то откройте файл Microsoft.Common.targets в каталоге .Net SDK (C: \ Windows \ Microsoft.NET \ Framework \ v3.5). Этот файл определяет процесс сборки для задачи MSBuild и проектов .Net, созданных Visual Studio. Ищите теги, названные BeforeXXXX и AfterXXXX. Ссылки на BeforeBuild и AfterBuild указаны в файле default.csproj - фрагмент:
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
Есть и другие, такие как Очистить, Восстановить и т. Д.
Определите цель (или цели) для выполнения внутри этих элементов цели, например так (Создает каталог или список каталогов на основе значения в свойстве Directories:
<Target Name="CreateDir">
<MakeDir Directories="D:\Dogs.txt"/>
</Target>
Затем включите эти цели в цель BeforeXXX:
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Target Name="BeforeBuild" BeforeTargets="CreateDir">
</Target>
</Project>