2008-11-24 2 views
2

У меня есть событие после сборки в главном файле TFSBuild.proj, который использует задачу MSBuild для вызова задачи развертывания после успешной сборки. Это выглядит так:Team Build MSBuild Задача не обновляет файл основного журнала сборки

<ItemGroup> 
    <DeploymentTargets Include="..\Sources\Build\SkunkWorks.Build.Deployment.targets"> 
     <Properties></Properties> 
    </DeploymentTargets> 
</ItemGroup> 
<Target Name="AfterBuild"> 
    <Message Text="Executing Deployment"/> 
    <MSBuild Projects="@(DeploymentTargets)" 
     Properties="PickUpLocation='@(DropLocation)'" 
     ContinueOnError="false"/> 
</Target> 

Это прекрасно работает, и сценарий развертывания называется так, как вы ожидали. Проблема в том, что любые ошибки или сообщения, создаваемые при выполнении MSBuild, не записываются в файлы BuildLog.txt или ErrorsAndWarnings.txt, которые помещаются в папку после успешной сборки.

Есть ли простой способ захвата этой информации?

ответ

1

Не могли бы вы обойти это, вызвав цели непосредственно, а не через MSBuild?

<Import Projects="..\Sources\Build\SkunkWorks.Build.Deployment.targets/> 

<Target Name=""/> 
    <CallTarget Targets="DeploymentTarget1"/> 
</Target> 

Кроме того, попробуйте взглянуть на файл Microsoft.TeamFoundation.Build.targets на вашей машине построения. Они используют много вызовов MSBuild, и я вижу, что они передают свойство LogLocation. Но я не знаю, является ли это глобальной сборкой Team Build или просто внутренним для этого файла.

Смежные вопросы