0

私はこれに関する多くのリンクを見てきましたが、どれもうまく機能しません。すべての場合、templateid が -1 になるか、processtemplate が null になります。

  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にアップロードする前に名前が付けられている場合にのみ、プロセステンプレート名を取得できます。

ここに画像の説明を入力してください

画像でわかるように、ここに「プロセステンプレート」というプロパティがあります。このプロパティには、テンプレートの名前などの値があります。存在しないプロパティを検索すると、APIは-1を返します。これは、上記のコードで実行しているものです。

ここにあるブログリンクのコードは、プロセステンプレートに名前を付けてからアップロードした場合にのみ、プロセステンプレート名を取得するのに役立ちます。http://geekswithblogs.net/TarunArora/archive/2011/11/15/tfs-api-process-template-currently-applied-to-the-team-project.aspx

TFS 2012のすべてのプロセステンプレートには、デフォルトで名前が付けられていることに注意してください。これはTFS2010には当てはまりませんでした。

これがあなたの質問に答えることを願っています。

于 2013-01-04T11:57:42.273 に答える