MSBuild BeforeBuild Step

Я спросил вчера о получении AfterBuild работать и смог получить это работает, поместив его в самом низу Project раздел: MSBuild AfterBuild Step

Я попробовал то же самое с другим проектом. Это мое BeforeBuild код:

<Target Name="BeforeBuild">
<Message Text="###HI###" Importance="High" />
</Target>

У меня нет другого раньше Target Name="BeforeBuild" в проекте, и я разместил это в самом низу Project раздел. .Vcxproj анализирует / загружает в Visual Studio 2010 без проблем. У меня есть «MSBuild Project build output / log verbocity», установленный на «Normal».

Есть ли что-то еще, о чем я не подумал, что это могло бы не работать?

2

Решение

Цель не вызывается, если она не вызывается явно, она является целью по умолчанию, объявляется в DependsOn для цели, которая вызывается, или объявляет свои собственные BeforeTargets или AfterTargets, и вызывается одна из этих целей.

Итак, если вы хотите, чтобы цель вызывалась до цели с именем InitializeBuildStatus, вы можете написать ее так:

<Target Name="MyBeforeBuild" BeforeTargets="InitializeBuildStatus">
<Message Text="###HI###" Importance="High" />
</Target>

Он запустится, если запустится цель «InitializeBuildStatus». (Вы можете включить подробное ведение журнала в Visual Studio или для запуска MSBuild, чтобы помочь определить подходящие цели BeforeTarget.)

Цели «BeforeBuild» и «AfterBuild» явно вызываются целевой системой некоторых типов проектов Microsoft. Это предлагает только ограниченную расширяемость. Более новый (.NET 4.0) способ — BeforeTargets и AfterTargets.

Увидеть Целевой порядок сборки.

3

Другие решения


По вопросам рекламы [email protected]