【问题标题】:Creating folder in VSO via VSO API通过 VSO API 在 VSO 中创建文件夹
【发布时间】:2016-03-27 06:51:44
【问题描述】:

我一直试图弄清楚如何通过 VSO api 创建查询文件夹,但我总是显示“方法不允许”消息。

我正在使用 Microsoft.TeamFoundationServer.Client 包连接 VSO。 This page 说我需要这个库。我可以查询数据,但创建数据似乎缺少一些东西。这个库适合我,因为我有一个管理与 VSO API 的通信的 WebApi。

这是我的代码:

public QueryHierarchyItem CreateFolderAsync(string folderName)
        {

            QueryHierarchyItem newFolder = new QueryHierarchyItem()
            {
                Name = folderName,
                IsFolder = true,
                //Path = "Queries/Shared Queries/" + folderName,
                IsPublic = true
            };

            QueryHierarchyItem item = witClient.CreateQueryAsync(newFolder, _projectName, null).Result;

            return item;

        }

我尝试过使用 Path 属性,但没有帮助。

  • 我已检查用户权限。我的用户是“项目管理员”的成员,并且
  • 还设置了权限以管理查询文件夹(单击“共享查询”文件夹旁边的 V 形 -> 选择“安全”)作为组和单个用户。它没有帮助。

我使用免费帐户。奇怪的是,我使用 Visual Studio 中的同一用户登录,并且可以管理文件夹。免费帐户是否可以使用此功能?

【问题讨论】:

    标签: c# azure-devops


    【解决方案1】:

    详情可以参考MSDN的这篇博客:http://blogs.msdn.com/b/team_foundation/archive/2010/06/16/work-item-tracking-queries-object-model-in-2010.aspx

    在此引用代码:

    using System;
    using Microsoft.TeamFoundation.Client;
    using Microsoft.TeamFoundation.WorkItemTracking.Client;
    
    namespace QueryAPI
    {
        class Program
        {
            private static Project myproject = null;
            public static QueryFolder GetMyQueriesFolder()
            {
                foreach (QueryFolder folder in myproject.QueryHierarchy)
                {
                    if (folder.IsPersonal == true)
                        return folder;
                }
                throw new Exception("Cannot find the My Queries folder");
            }
    
            public static QueryFolder AddNewFolder(string folderName)
            {
                QueryFolder folder = new QueryFolder(folderName, GetMyQueriesFolder());
                myproject.QueryHierarchy.Save();
                return folder;
            }
            static void Main(string[] args)
            {
                TfsTeamProjectCollection coll = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("Your TFS Server URI"));
                WorkItemStore store = new WorkItemStore(coll);
                myproject = store.Projects["Your project name"];
                QueryFolder myNewfolder = AddNewFolder("Your folder name");
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-25
      • 1970-01-01
      • 1970-01-01
      • 2015-11-07
      • 2014-09-01
      • 1970-01-01
      • 2017-11-28
      相关资源
      最近更新 更多