我一直在试图弄清楚如何通过VSO api创建查询文件夹,但我始终是“方法不允许”的消息。
我正在使用 Microsoft.TeamFoundationServer.Client 包来连接VSO。 This页面说我需要这个库。我可以查询数据,但似乎缺少创建数据的东西。这个库适合我,因为我有一个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属性,但它没有帮助。
我使用免费帐户。奇怪的是,我已经从Visual Studio登录了同一个用户,我可以管理这些文件夹。此功能是否适用于免费帐户?
答案 0 :(得分:0)
您可以参考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");
}
}
}