0

我已经看到了可能的链接,但它们都不能正常工作。在所有情况下,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;
    }

请在这方面提供帮助。我想找出以编程方式应用于项目的流程模板。

4

1 回答 1

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 并非如此。

希望这能回答你的问题。

于 2013-01-04T11:57:42.273 回答