API资源位置未注册

ama*_*han 3 .net c# tfs tfs-sdk

我能够创建项目/删除/重命名所有内容,但是当需要获取组时,它会说“API资源位置ebbe6af8-0b91-4c13-8cf1-777c14858188未在http://khanamar3:8080/tfs/DefaultCollection/上注册”请帮忙.....

public PagedGraphGroups GetAllGroups()
    {
        VssConnection connection = Context.Connection;
        GraphHttpClient graphClient = connection.GetClient<GraphHttpClient>();
        //error coming in next line...
        PagedGraphGroups groups = graphClient.GetGroupsAsync().Result;

        foreach (var group in groups.GraphGroups)
        {
            LogGroup(group);
        }

        return groups;
    }
Run Code Online (Sandbox Code Playgroud)

paw*_*ciu 6

可能存在两个问题

API 资源位置 {0} 未在 {1} 上注册

1. 带有网址

我认为它应该没有默认集合,所以在你的例子中

http://khanamar3:8080/tfs/

2.使用TFS/API版本(我自己也遇到过这个问题)

2.1

例如,首先在 TFS 管理中检查 TFS 服务器的版本

C:\Program Files\Microsoft Team Foundation Server 2018\Tools\TfsMgmt.exe

一旦您知道您的 TFS Server 版本,您就可以查看它支持哪个 API 版本

https://learn.microsoft.com/en-us/rest/api/azure/devops/?view=vsts-rest-tfs-4.1

例如TFS 2018 UPDATE 1支持API版本4.0

API版本和TFS

2.2

然后检查您使用的 DLL 调用的 API 版本。我无法在 nuget 网站https://www.nuget.org/packages/Microsoft.TeamFoundationServer.Client/上找到此信息

更新:您可以在此处检查哪个 dll 版本支持哪个 TFS 版本: https: //learn.microsoft.com/en-us/azure/devops/integrate/concepts/dotnet-client-libraries ?view=azure-devops

但如这里所述 How to指定API版本? 您可以使用 ILSpy 检查该方法传递的 API 版本

您的情况的方法是:

获取异步组

您可以使用https://marketplace.visualstudio.com/items?itemName=SharpDevelopTeam.ILSpy检查这一点

ILSpy 示例

就我而言,它看起来像这样 ILSpy结果

因此nuget 版本 16.153.0 中的 API 使用 5.1.1 的调用

因此,就我而言,TFS 2018 UPDATE 1 不支持 API 版本 5.1.1,因此我需要降级 nuget 或升级 TFS Server 版本(或两者)