如何使TFS生成自定义代码活动失败并且不计算关联的变更集?

如何使TFS生成自定义代码活动失败并且不计算关联的变更集?,tfs,tfsbuild,Tfs,Tfsbuild,我正在使用TFS 2012进行构建 当构建在TFS中运行时,您将获得自上次成功构建以来包含的变更集。这些被称为关联变更集 我有一个自定义构建活动,我希望在某些条件下使构建失败。要触发此失败,我只是从中抛出一个异常 我遇到的问题是,即使抛出异常(生成失败),下一个生成也不包括来自上一个失败生成的关联变更集中的变更集 有人知道变更集在构建工作流中的哪一点被标记为成功吗? 我所追求的行为是,如果我的自定义活动使生成失败,那么来自此生成的变更集应该出现在下一个生成的关联变更集中。依此类推,直到构建成功。

我正在使用TFS 2012进行构建

当构建在TFS中运行时,您将获得自上次成功构建以来包含的变更集。这些被称为
关联变更集

我有一个自定义构建活动,我希望在某些条件下使构建失败。要触发此失败,我只是从中抛出一个异常

我遇到的问题是,即使抛出异常(生成失败),下一个生成也不包括来自上一个失败生成的
关联变更集中的变更集

有人知道变更集在构建工作流中的哪一点被标记为成功吗?


我所追求的行为是,如果我的自定义活动使生成失败,那么来自此生成的变更集应该出现在下一个生成的
关联变更集中。依此类推,直到构建成功。

使用
context.TrackBuildError(“oops my build break”)


这将导致生成正确失败,并且更改集不会关联

这是我最初设置它的方式,但它不起作用。这会导致构建部分成功,而不是失败。变更集也保持关联。似乎这是已完成构建是否已失败的状态?在什么时候抛出错误-您可能还需要确保编译状态为失败。检查BuildDefinitions LastBuild LastGoodBuild URI以查看tfs在那里记录了什么。我一直假设更改集基于lastgoodbuild版本,但可能是工作区更新实际获取了列表,请查看是否有输出作为工作区清理设置,然后全部尝试。@drk-生成完成,状态为失败。如果TreatTestFailureAsBuildFailure和(TestStatus=Failed)
,则会在
之后引发错误。我不知道如何检查
LastGoodBuild
。我在谷歌上到处搜索,但什么也找不到。我想我可能需要做一些类似于
If TreatTestFailureAsBuildFailure And(TestStatus=Failed)
条件的事情,然后运行一个名为
的任务,将状态设置为Failed
。您可能需要为此使用api,这描述了如何获取构建定义对象-。您还可以从BuildDetails中获得对它的访问权,该详细信息应在生成工作流中提供给您。