有没有办法在TFS中编辑构建定义时验证构建过程参数?

时间:2014-07-07 10:50:07

标签: tfs build-process tfsbuild

我试着在Google上查看这是否可行,但未能获得结果。

我有一个构建过程文件,需要在执行构建之前设置一些自定义参数。

我想知道在“处理”标签中编辑构建定义时是否有办法验证自定义参数的输入内容?

例如,我有两个单独的参数,它们在同一文件夹位置保存不同的文件名。然后,构建定义具有交换这些文件名的功能。

编辑这些参数时,假设用户意外地在两个字段中输入相同的名称,是否有办法提示用户(那时)他需要输入不同的文件名?

3 个答案:

答案 0 :(得分:3)

有一种方法可以实现自定义参数编辑器,如this post中所述。不久,您编写了一些自定义WinForm代码来输入和验证参数。 如果你通过这条路线考虑

  • 管理客户端自定义(测试,部署,更新)
  • 构建可以通过其他方式排队(例如命令行),此代码仅在Visual Studio中检查值
  • 将ChrisBint建议的工作流本身检查加倍

答案 1 :(得分:1)

您可以编写一个服务器端插件,用于实现ISubscriber接口和EventType(SubscribedTypes)BuildDefinitionChangingEvent

您将获得BuildDefinition的旧版本和新版本。 这是一个决策点,因此您可以阻止BuildDefinition被更改。

要了解ISubscriber是什么以及如何实现它,请看看这两页: http://vgaltes.com/index.php/2013/04/14/create-a-team-foundation-server-event-handler/ http://geekswithblogs.net/jakob/archive/2010/10/27/devleoping-and-debugging-server-side-event-handlers-in-tfs-2010.aspx

TFS服务器API确实为用户或进程触发的不同类型的操作提供事件。您可以订阅这些事件并执行操作。有两种不同的类型:通知决策点。它们之间的区别在于决策点能够取消某个动作。例如,您可以阻止源代码管理签入。

答案 2 :(得分:0)

不幸的是没有。

构建定义仅将输入限制为参数类型,不再进行进一步的验证。验证这一点的唯一地方是活动本身。虽然这不会在编辑构建时提醒用户,但理论上如果它们匹配则可以使构建失败。