Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tfs 获取构建质量列表_Tfs_Tfsbuild - Fatal编程技术网

Tfs 获取构建质量列表

Tfs 获取构建质量列表,tfs,tfsbuild,Tfs,Tfsbuild,我有一个部署代码的自定义构建,这是我需要指定构建质量的部署过程的一部分。目前我必须输入质量,例如“准备部署”。我想添加一个自定义过程参数下拉列表,其中包含已为项目设置的所有构建质量 最初,我开始创建一个自定义活动来获得构建质量。TFS已经有了一种方法,可以使用: buildServer.GetBuildQualities(teamProjectName) 但是,自定义活动需要传入TeamProjectName。这就是我感到困惑的地方,我不明白如何传递这个论点 我们有很多项目,我想对所有项目使用

我有一个部署代码的自定义构建,这是我需要指定构建质量的部署过程的一部分。目前我必须输入质量,例如“准备部署”。我想添加一个自定义过程参数下拉列表,其中包含已为项目设置的所有构建质量

最初,我开始创建一个自定义活动来获得构建质量。TFS已经有了一种方法,可以使用:

buildServer.GetBuildQualities(teamProjectName)
但是,自定义活动需要传入TeamProjectName。这就是我感到困惑的地方,我不明白如何传递这个论点


我们有很多项目,我想对所有项目使用相同的构建定义,所以我不能硬编码团队项目名称

工作流中有一个
BuildDetail
变量(类型)。它有一个
TeamProject
属性,其中包含当前正在运行的生成工作流的团队项目的名称


您应该在活动中添加一个
字符串
输入参数,并将XAML设计器中的值设置为
BuildDetail.TeamProject
,以便传入该值。

作为使用自定义活动的替代方法,可以使用简单的赋值操作
BuildDetail.Quality
。例如,您可以将以下顺序放入
Try Compile and Test
元素的
Finally
子句中:

<Sequence DisplayName="Set Build Quality" >
<If Condition="[BuildDetail.CompilationStatus = BuildPhaseStatus.Succeeded]" DisplayName="BuildDetail.CompilationStatus = BuildPhaseStatus.Succeeded" >
  <If.Then>
    <Assign DisplayName="Assign Build Quality Ready">
      <Assign.To>
        <OutArgument x:TypeArguments="x:String">[BuildDetail.Quality]</OutArgument>
      </Assign.To>
      <Assign.Value>
        <InArgument x:TypeArguments="x:String">["Ready for Initial Test"]</InArgument>
      </Assign.Value>
    </Assign>
  </If.Then>
  <If.Else>
    <Assign DisplayName="Assign Build Quality Under Investigation">
      <Assign.To>
        <OutArgument x:TypeArguments="x:String">[BuildDetail.Quality]</OutArgument>
      </Assign.To>
      <Assign.Value>
        <InArgument x:TypeArguments="x:String">Under Investigation</InArgument>
      </Assign.Value>
    </Assign>
  </If.Else>
</If>
</Sequence>

[BuildDetail.Quality]
[“准备好进行初始测试”]
[BuildDetail.Quality]
正在调查中

嗯。。。我遇到的问题是在构建执行之前加载流程参数。因此,我需要一种在排队构建时注入团队项目名称的方法,而不是执行它。感谢您的回复。但是我正在寻找一种方法来添加一个下拉菜单到自定义流程参数中(在对新构建排队时的参数选项卡)。因此,用户可以选择要提升到其他环境的构建质量。