C# 使用TFS ExtendedClient API删除TFS GlobalList

C# 使用TFS ExtendedClient API删除TFS GlobalList,c#,xml,tfs-2015,C#,Xml,Tfs 2015,我尝试从GLOBALLIST xml数据中删除GLOBALLIST,然后尝试将更新后的xml数据导入tfs服务器,但没有任何内容使用下面的代码行进行更新。[没有引发错误 store.ImportGlobalLists(collectionGlobalListRoot.InnerXml); 注意:这里的存储是WorkItemStore和collectiongloballistrot是XMLDocument包含整个更新的集合的globallist xml 添加GlobalList在这里效果很好。

我尝试从GLOBALLIST xml数据中删除GLOBALLIST,然后尝试将更新后的xml数据导入tfs服务器,但没有任何内容使用下面的代码行进行更新。[没有引发错误

store.ImportGlobalLists(collectionGlobalListRoot.InnerXml);
注意:这里的存储
WorkItemStore
collectiongloballistrot
XMLDocument
包含整个更新的集合的globallist xml

添加GlobalList在这里效果很好。

我想知道我是否必须使用任何不同的机制来通过API销毁globallist


任何帮助都将不胜感激。

修改全局列表的正常流程通常是导出全局列表XML,修改XML并将其导入回

但是,无法删除全局列表。因为 导入/导出方法的设置方式也可以添加或删除 更新
1列表而不是全部,您永远无法删除列表。如果 您不发送特定列表的XML,它不会更新

要删除/销毁全局列表,您需要创建一个特殊的 可以发送到的sendUpdatePackage方法的XML包 工作项存储对象。示例代码如下:


更多详细信息请参阅此博客:

您可以使用
InternalAdmin.DestroyGlobalList()
方法删除全局列表

公共静态列表globallist(Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemStore存储,字符串globalListName,bool force)

Microsoft.TeamFoundation.WorkItemTracking.Client.InternalAdmin的成员

摘要:销毁传入的全局列表

参数:存储:强制:销毁列表,即使它们正在使用。 全局列表名:

代码供您参考:

using System;
using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.WorkItemTracking.Client;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string url = "http://xxx:8080/tfs/CollectionName/";
            string GlobalListName = "ListName";
            TfsTeamProjectCollection ttpc = new TfsTeamProjectCollection(new Uri(url));
            WorkItemStore wis = ttpc.GetService<WorkItemStore>();
            InternalAdmin.DestroyGlobalList(wis, GlobalListName, false);
        }
    }
}
使用系统;
使用Microsoft.TeamFoundation.Client;
使用Microsoft.TeamFoundation.WorkItemTracking.Client;
命名空间控制台应用程序1
{
班级计划
{
静态void Main(字符串[]参数)
{
字符串url=”http://xxx:8080/tfs/CollectionName/";
字符串GlobalListName=“ListName”;
TfsatmProjectCollection ttpc=新TfsatmProjectCollection(新Uri(url));
WorkItemStore wis=ttpc.GetService();
InternalAdmin.DestroyGlobalList(wis,GlobalListName,false);
}
}
}

@Patric MSFT我确实已经看到了url。但是在ExtendedClient API中没有这样的函数SendUpdatePackage。有什么想法吗?@Rezoan请看上面的评论。试试看,我确实看到了。可能他们正在使用某种自定义库,但不确定。期待任何官方资源。无论如何,我目前正在通过进程使用witadmin命令,并且能够销毁globallist。谢谢你的努力。(非常感谢。)谢谢你的回复。我会尝试使用它,并让你知道。@Rezoan没问题,如果你有任何问题,请告诉我。:)
using System;
using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.WorkItemTracking.Client;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string url = "http://xxx:8080/tfs/CollectionName/";
            string GlobalListName = "ListName";
            TfsTeamProjectCollection ttpc = new TfsTeamProjectCollection(new Uri(url));
            WorkItemStore wis = ttpc.GetService<WorkItemStore>();
            InternalAdmin.DestroyGlobalList(wis, GlobalListName, false);
        }
    }
}