TFS自定义构建模板 - 在没有Uri的情况下获取团队项目集合

时间:2012-04-06 16:21:47

标签: c# tfs tfs2010

无论如何都要从IBuildDefinition或其他相关'服务'获取集合URI。

我试图避免必须在构建模板中将URI作为自定义参数提供给集合。我正在寻找一种方法从UITypeEditor自定义类中(在本例中)以编程方式检索它。

有没有办法在不诉诸硬编码的情况下查询?在我看来,构建过程本身(定义,控制器,代理等)知道他们正在处理哪个集合但我怎么能找到?

更新:以下是继承UITypeEditor时的示例代码。然后,您只需访问TeamProjectCollection的{​​{1}}属性:

VersionControlService

2 个答案:

答案 0 :(得分:1)

您可以从IBuildServer获取TfsTeamProjectProjection对象:

http://msdn.microsoft.com/en-us/library/microsoft.teamfoundation.build.client.ibuildserver.teamprojectcollection.aspx

然后从这个对象中获取Uri。

答案 1 :(得分:1)

在UITypeEditor.EditValue的覆盖内部,获取TeamProjectCollection的相关代码行是

VersionControlServer vcs = provider.GetService(typeof(VersionControlServer)) as VersionControlServer;

然后它在属性

vcs.TeamProjectCollection