2016-11-12 64 views
0

我认为这将是非常直接的,但它看起来像模板必须修改。任何人都知道该怎么做才能将这件作品添加到默认模板中?TFS 2012构建定义/模板 - 如何自动设置构建质量?

我知道如何编辑模板,我只是不知道我需要做些什么来完成这项工作。

+0

你为什么要自动设置建设质量作为构建的一部分吗?除了编译成功/失败以及单元测试是否通过之外,您不知道关于构建质量的任何信息。 –

+0

如果一切都过去了,我会将它设置为释放。我可以在构建期间进行检查以处理所有这些问题。我只是不知道如何设置该部分。自动化构建没有多大意义,但是构建管理器需要手动设置每个构建的每个构建质量。那真是太疯狂了。构建可以通过得到多少来确定质量。 – user5855178

回答

0

This case已经提供您的需求的解决方案:

  1. 复制DefaultTemplate.xaml到DefaultTemplateCustom.xaml并打开它
  2. 单击折叠在右上角
  3. 打开工具箱中的所有链接并找到指定活动。它坐落在基元部分
  4. 拖动分配活动工作流的结束,“运行的MSBuild”活动
  5. 转到属性窗口后。将“”参数设置为BuildDetail.Quality。设置“”到“XXX(做工)
  6. 找到的InvokeMethod在工具箱中,拖动它和分配活动
  7. 设置“目标对象后掉落“至BuildDetail。设置“MethodName”至保存
  8. 保存构建定义xaml文件并将其检入,然后使用自定义定义进行构建。
+0

我已经试过了。分配活动不允许您将字符串直接设置到此属性中:验证错误:活动“1:DynamicActivity”的私有实现具有以下验证错误:编译器错误遇到处理表达式“BuildDetail.Quality”.Invalid L值表达式:参照表达式不能以转换结束。提供的表达式类型必须与VisualBasicReference 或LambdaReference 的类型T完全匹配。 – user5855178

+0

您的构建模板中存在错误,您需要检查模板中的错误并进行更正。假设你有'Microsoft.TeamFoundation.Build.Client.BuildDetail'是不可访问的错误,那么在这种情况下检查解决方案https://social.msdn.microsoft.com/Forums/vstudio/en-US/49f11ed9-9fa8- 4c20-952a-d39ee7e71051/can-no-longer-user-builddetaildroplocation-for-copydirectory -with-tfs-2013-using-build-process?forum = tfsbuild –

+0

我已经在TfvcTemplate.12.xaml(I不再有TFS 2012 Build Definition),并且在“运行MSBuild”步骤后移动Assign活动和InvokeMethod活动,然后获得成功的结果。 –

0

您还可以考虑创建一个PowerShell脚本来设置通过TFS API的构建质量,然后在您的构建模板中调用此PowerShell脚本。有关详细信息,请参阅此链接:PowerShell and TFS: The Basics and Beyond

下面是一个简单的脚本来设置构建质量:

$builduri = "vstfs:///Build/Build/1"; 
$collectionurl = "http://xxxx:8080/tfs/xxx/"; 
$tfs = [Microsoft.TeamFoundation.Client.TfsTeamProjectCollectionFactory]::GetTeamProjectCollection($collectionurl); 
$buildservice = $tfs.GetService([Microsoft.TeamFoundation.Build.Client.IBuildServer]); 
$build = $buildservice.GetBuild($builduri); 
$build.Quality = "Released"; 
$build.Save()