我已经看到可能有关于此的链接,但它们都没有正常工作。在所有情况下,templateid为-1或processtemplate为空。
private ProjectProperty[] GetProcessTemplateDetailsForTheSelectedProject(string prjname)
{
var vcs = _tfs.GetService<VersionControlServer>();
var ics = _tfs.GetService<ICommonStructureService>();
ProjectProperty[] ProjectProperties = null;
var p = vcs.GetTeamProject(prjname);
string ProjectName = string.Empty;
string ProjectState = String.Empty;
int templateId = 0;
ProjectProperties = null;
ics.GetProjectProperties(p.ArtifactUri.AbsoluteUri, out ProjectName, out ProjectState, out templateId, out ProjectProperties);
IProcessTemplates processTemplates = (IProcessTemplates)_tfs.GetService(typeof(IProcessTemplates));
XmlNode node = processTemplates.GetTemplateNames();
return ProjectProperties;
}
请帮助解决这个问题。我想找到适用于项目的流程模板。
答案 0 :(得分:0)
如果流程模板在上传到TFS之前获得了名称,则只能获取流程模板名称。
正如您在图像中看到的,这里有一个属性“Process Template”,它有一个值,即模板的名称。如果您查找不存在的属性,api将返回-1,这是您使用上述代码运行的内容。
此处博客链接中的代码将帮助您获取流程模板名称,同样,只有在您上传流程模板之前为流程模板指定了名称。 http://geekswithblogs.net/TarunArora/archive/2011/11/15/tfs-api-process-template-currently-applied-to-the-team-project.aspx
请注意,默认情况下,TFS 2012中的所有流程模板都已命名。对于TFS 2010来说情况并非如此。
希望这能回答你的问题。