我在我的主TFSBuild.proj文件中有一个after 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文件。
有没有简单的方法来捕获这些信息?
答案 0 :(得分:1)
你可以通过直接调用目标而不是通过MSBuild来解决它吗?
<Import Projects="..\Sources\Build\SkunkWorks.Build.Deployment.targets/>
<Target Name=""/>
<CallTarget Targets="DeploymentTarget1"/>
</Target>
或者,尝试查看构建计算机上的Microsoft.TeamFoundation.Build.targets文件。他们在那里使用了很多MSBuild调用,我看到他们传递了LogLocation属性。但我不知道这是一个全局的团队构建还是仅仅是该文件的内部。