我能够创建项目/删除/重命名所有内容但是当它来获取组时,它说“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;
}
答案 0 :(得分:1)
可能有两个问题
API资源位置{0}未在{1}上注册
1。使用网址
我认为应该没有默认集合,因此在您的示例中
2。使用TFS / API版本(我自己遇到了这个问题)
2.1
首先在TFS管理中检查TFS服务器的版本 例如
C:\ Program Files \ Microsoft Team Foundation Server 2018 \ Tools \ TfsMgmt.exe
一旦知道您的TFS服务器版本,就可以看到它支持的API版本
https://docs.microsoft.com/en-us/rest/api/azure/devops/?view=vsts-rest-tfs-4.1
例如 TFS 2018 UPDATE 1支持API版本4.0
2.2
然后检查所使用的DLL调用的API版本。我在nuget网站上找不到此信息 https://www.nuget.org/packages/Microsoft.TeamFoundationServer.Client/
更新:您可以在此处检查哪个dll版本支持哪个TFS版本: https://docs.microsoft.com/en-us/azure/devops/integrate/concepts/dotnet-client-libraries?view=azure-devops
但如此处所述 How to specify the API version? 您可以使用ILSpy检查该方法传递的API版本
您的情况下的方法是:
GetGroupsAsync
您可以使用https://marketplace.visualstudio.com/items?itemName=SharpDevelopTeam.ILSpy
进行检查因此nuget版本16.153.0中的 API使用带有5.1.1的调用
因此,在我的情况下,TFS 2018 UPDATE 1不支持API版本5.1.1,因此我将降级nuget或升级TFS Server版本(或两者)
答案 1 :(得分:0)
您可以将IIdentityManagementService与ListApplicationGroups一起使用以获取应用程序组列表。
TeamFoundationIdentity[] ListApplicationGroups(
string scopeId,
ReadIdentityOptions readOptions
)
示例代码
var applicationGroups = identityManagementService.ListApplicationGroups(projectcollection.Uri.AbsoluteUri, ReadIdentityOptions.None);
另请看一下这个类似的问题:TFS 2013 get All TFS group including Windows group