正在通过VSO API在VSO中创建文件夹

本文关键字:VSO 创建 文件夹 API | 更新日期: 2023-09-27 18:25:08

我一直在想如何通过VSO api创建查询文件夹,但我总是收到"不允许方法"的消息。

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

这是我的代码:

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属性,但它没有帮助。

  • 我已经检查了用户权限。我的用户是"项目管理员"的成员,并且
  • 权限还设置为以组和单个用户的身份管理查询文件夹(单击"Shared Queries"文件夹旁边的V形图标->选择"Security")。这也于事无补

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

正在通过VSO API在VSO中创建文件夹

有关详细信息,请参阅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");
        }
    }
}