如何从TFSBuild.proj中的Task取消构建?

时间:2013-12-12 19:08:00

标签: c# tfs build build-automation build-definition

我有一个触发器可以在签到时构建项目。但是我想在某些情况下添加一些检查和取消构建。

我创建了一个具有我要检查条件的任务。我可以使用TFSBuild.proj文件运行此任务,代码类似于CheckIfBuildNeeded是我的任务的名称:

<Target Name="BeforeCompile">
  <CheckIfBuildNeeded>
    .....
  </CheckIfBuildNeeded>
</Target>

那么,答案是,如何从Task的Execute()方法或任何其他地方取消/停止构建?我怎样才能获得Build对象?

我知道我可以使用此代码从TFS获取构建。但是,为了对构建我做一些事情,自然需要知道它的ID。

TeamFoundationServer tfs = TeamFoundationServerFactory.GetServer("http://foo.bar/tfs");
IBuildServer buildServer = (IBuildServer)tfs.GetService(typeof(IBuildServer));

1 个答案:

答案 0 :(得分:1)

查看Error Task

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Target Name="ValidateCommandLine">
        <Error
            Text=" The 0 property must be set on the command line."
            Condition="'$(0)' == ''" />
        <Error
            Text="The FREEBUILD property must be set on the command line."
            Condition="'$(FREEBUILD)' == ''" />
    </Target>
    ...
</Project>