2010-06-28 3 views
4

У меня, похоже, ситуация, когда код, который я помещал в цель BeforeBuild, не выполняется успешно.MSBuild Target BeforeBuild не выполняется

Вот что у меня есть:

<Target Name="BeforeBuild" > 
    <Message Text="Before Build" /> 
</Target> 

Я не могу видеть вывод сообщений в журнале сборки при запуске сборки. Что-то не так с тем, как я отформатировал это, или он должен быть в определенном месте в сценарии? Я даже смотрю в правильном месте для этих сообщений?

EDIT: изменение значения высоких, кажется, не делает никакой разницы

+0

Как запустить сценарий? Где вы ищете сообщение? Попытайтесь добавить атрибут Value = "high" к задаче на сообщение. –

+0

Я ищу в журнале сборки - это неправильное место? –

+0

Это подходящее место. Можете ли вы вставить здесь содержимое файла проекта? –

ответ

0

Вам необходимо правильно переопределить Перед целью сборки. Самый простой способ сделать это - вставить переопределение перед тегом или объявить эту задачу как DefaultTargets.

<Project DefaultTargets="DesktopBuild" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5"> 
    <!-- Override TFS build targets and run custom made ones --> 
    <Target Name="BeforeCompile" DependsOnTargets="VersionAssemblies"></Target> 
    <Target Name="AfterCompile" DependsOnTargets="GetTime;RunTests;CreateHTMLReport;Mail"></Target> 
    <Target Name="AfterDropBuild" DependsOnTargets="RemovePrevContent;CopySrcBinaries;ZipBinPackages;CopyAllContent;RemoveBindings"></Target> 

</Project> 
+0

Когда я переопределяю BeforeCompile, он работает. Но переопределить BeforeBuild нет. Указание DefaultTargets не имеет значения - если в решении есть что-то в файле .proj, похоже, это предпочтение. –

5

Смотрите ответ на этот вопрос MS-Build BeforeBuild not firing

Вам просто нужно, чтобы переместить цель BeforeBuild так, что кажется, после того, как линия, которая импортирует Microsoft.CSharp.targets.