Biblioteki klienckie .NET
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Biblioteki klienckie są dostępne dla deweloperów platformy .NET, którzy tworzą aplikacje i usługi systemu Windows zintegrowane z usługą Azure DevOps. Biblioteki klienckie integrują się ze śledzeniem elementów roboczych, kontrolą wersji, kompilacją i innymi usługami. Te pakiety ułatwiają uzyskiwanie i redystrybucję bibliotek wymaganych przez aplikację lub usługę.
Wskazówka
Znajdź odpowiednią klasę klienta i metodę API platformy .NET, korzystając z przykładów biblioteki .NET Client Library oraz z dokumentacji interfejsu API usługi Azure DevOps .
Diagram zależności
Funkcje bibliotek klienckich platformy .NET
Biblioteki klienckie platformy .NET dla usługi Azure DevOps oferują kilka kluczowych funkcji, które ułatwiają integrację z usługami w usłudze Azure DevOps z poziomu aplikacji i usług systemu Windows:
- Do pobrania z NuGet.org: łatwo zaimportuj biblioteki do projektów programu Visual Studio, pobierając je z NuGet.org.
- Licencjonowana na ponowną dystrybucję: Biblioteki są licencjonowane do ponownej dystrybucji w aplikacjach i systemach. Aby uzyskać więcej informacji, możesz przejrzeć licencję.
- dostęp do interfejsów API: uzyskaj dostęp zarówno do tradycyjnych interfejsów API modelu obiektów klienta, jak i interfejsów API REST w celu programowej interakcji z usługą Azure DevOps.
Tabela mapowania wersji pakietu i usługi Azure DevOps
Poniższa tabela mapuje wersje pakietów bibliotek klienckich platformy .NET na odpowiednie wersje serwera Azure DevOps Server. Ta tabela umożliwia określenie wersji pakietu odpowiadającej wersji usługi Azure DevOps.
Wersja pakietu | Wersja usługi Azure DevOps |
---|---|
16.205.x | versions >= Azure DevOps Server 2022 |
16.170.x | versions >= Azure DevOps Server 2020 |
16.153.x | versions >= Azure DevOps Server 2019 Update 1 |
16.143.x | versions >= Azure DevOps Server 2019 |
Aby uzyskać najnowsze wersje zapoznawcze, zobacz galerię pakietów NuGet .
Pakiety REST
W poniższej tabeli wymieniono biblioteki klienckie platformy .NET dostępne do uzyskiwania dostępu do różnych usług za pośrednictwem publicznych interfejsów API REST. Te pakiety można pobrać z NuGet.org i udostępnić niezbędne pliki binarne do integracji z usługą Azure DevOps.
Pakiety i opis | Pliki binarne |
---|---|
Microsoft.VisualStudio.Services.Client Zapewnia dostęp do usług udostępnionych platform za pośrednictwem publicznych interfejsów API REST, takich jak organizacja, profil, tożsamość, zabezpieczenia i inne. |
Microsoft.VisualStudio.Services.WebApi.dll , Microsoft.VisualStudio.Services.Common.dll , Microsoft.TeamFoundation.Common.dll |
Microsoft.TeamFoundationServer.Client Zapewnia dostęp do kontroli wersji, śledzenia elementów roboczych, kompilowania i nie tylko za pośrednictwem publicznych interfejsów API REST. |
Microsoft.TeamFoundation.Build2.WebApi.dll , Microsoft.TeamFoundation.Core.WebApi.dll , Microsoft.TeamFoundation.WorkItemTracking.Process.WebApi.dll , Microsoft.TeamFoundation.SourceControl.WebApi.dll , Microsoft.TeamFoundation.TestManagement.WebApi.dll itd. |
Microsoft.VisualStudio.Services.InteractiveClient Obsługuje aplikacje, które wymagają interaktywnego logowania przez użytkownika. |
Microsoft.VisualStudio.Services.Client.Interactive.dll |
Microsoft.VisualStudio.Services.Release.Client Zapewnia dostęp do Usługi Wydania za pośrednictwem publicznych interfejsów API REST. |
Microsoft.VisualStudio.Services.ReleaseManagement.WebApi.dll |
Microsoft.TeamFoundation.DistributedTask.Common.Contracts Udostępnia modele używane do uzyskiwania dostępu do rozproszonej usługi zadań za pośrednictwem publicznych interfejsów API REST. |
Microsoft.TeamFoundation.DistributedTask.Common.Contracts.dll |
Microsoft.TeamFoundation.DistributedTask.WebApi Zapewnia dostęp do rozproszonej usługi zadań za pośrednictwem publicznych interfejsów API REST. |
Microsoft.TeamFoundation.DistributedTask.WebApi.dll |
Microsoft.VisualStudio.Services.ServiceHooks.WebApi Zapewnia dostęp do usługi Service Hooks Service za pośrednictwem publicznych interfejsów API REST. |
Microsoft.VisualStudio.Services.ServiceHooks.WebApi.dll |
Microsoft.VisualStudio.Services.Gallery.WebApi Zapewnia dostęp do usługi Galerii za pośrednictwem publicznych interfejsów API REST. |
Microsoft.VisualStudio.Services.Gallery.WebApi.dll |
Microsoft.VisualStudio.Services.Notifications.WebApi Zapewnia dostęp do usługi Notifications Service za pośrednictwem publicznych interfejsów API REST. |
Microsoft.VisualStudio.Services.Notifications.WebApi.dll |
Microsoft.VisualStudio.Services.ExtensionManagement.WebApi Zapewnia dostęp do usługi zarządzania rozszerzeniami za pośrednictwem publicznych interfejsów API REST. |
Microsoft.VisualStudio.Services.ExtensionManagement.WebApi.dll |
Microsoft.VisualStudio.Services.MemberEntitlementManagement.WebApi Zapewnia dostęp do usługi zarządzania upoważnieniami członka za pośrednictwem publicznych interfejsów API REST. |
Microsoft.VisualStudio.Services.MemberEntitlementManagement.WebApi.dll |
Microsoft.VisualStudio.Services.ServiceEndpoints.WebApi Zapewnia dostęp do punktów końcowych usługi za pośrednictwem publicznych interfejsów API REST. |
Microsoft.VisualStudio.Services.ServiceEndpoints.WebApi.dll |
Microsoft.VisualStudio.Services.Search.Client Zapewnia dostęp do usługi wyszukiwania za pośrednictwem publicznych interfejsów API REST. |
Microsoft.VisualStudio.Services.Search.Shared.WebApi.dll , Microsoft.VisualStudio.Services.Search.WebApi.dll |
Microsoft.TeamFoundation.PublishTestResults To zadanie może służyć do publikowania wyników testów i przekazywania załączników testów w usłudze Azure DevOps. Następujące formaty wyników są obsługiwane w tym pakiecie: 1. JUnit — publikowanie testów z projektów JUnit, 2. NUnit — publikowanie testów z projektów NUnit, 3. VSTest — publikowanie testów z projektów programu Visual Studio, 4. Xunit — publikowanie testów z projektów Xunit. |
Microsoft.TeamFoundation.TestClient.PublishTestResults.dll |
Microsoft.VisualStudio.Services.Audit.WebApi Zapewnia dostęp do usługi inspekcji za pośrednictwem publicznych interfejsów API REST. |
Microsoft.VisualStudio.Services.Audit.WebApi.dll |
Microsoft.Azure.Pipelines.Policy.Client Zapewnia dostęp do zatwierdzeń przepływów, sprawdzeń i autoryzacji za pośrednictwem publicznych interfejsów API REST. |
Microsoft.Azure.Pipelines.Policy.Client.dll |
Wskazówka
Jeśli masz istniejącą aplikację lub usługę systemu Windows korzystającą z modelu obiektów klienta TFS, użyj Microsoft.TeamFoundationServer.ExtendedClient
. Ten pakiet zapewnia dostęp do starszych interfejsów API opartych na protokole SOAP, które są niezbędne dla niektórych funkcji, które nie są dostępne w nowszych interfejsach API REST. Jednak ten pakiet nie obsługuje platformy .NET Standard i jest przeznaczony do użycia tylko wtedy, gdy interfejsy API REST nie oferują wymaganych funkcji.
Opakowanie mydła
W poniższej tabeli wymieniono biblioteki klienckie platformy .NET dostępne do uzyskiwania dostępu do różnych usług za pośrednictwem interfejsów API protokołu SOAP. Te pakiety można pobrać z NuGet.org i udostępnić niezbędne pliki binarne do integracji z usługą Azure DevOps. Używaj tych pakietów tylko wtedy, gdy interfejsy API REST nie oferują potrzebnych funkcji, na przykład tworzenia obszarów roboczych w usłudze TFVC.
Pakiet i opis | pliki binarne |
---|---|
Microsoft.TeamFoundationServer.ExtendedClient Praca z kontrolą wersji, elementami roboczymi, kompilacją i innymi zasobami z aplikacji klienckiej oraz zarządzanie nimi. Ten pakiet nie obsługuje pakietu Net Standard Client OM. Użyj tego pakietu tylko wtedy, gdy nasze interfejsy API REST nie oferują potrzebnych funkcji (na przykład tworzenia obszarów roboczych w usłudze TFVC). |
Microsoft.TeamFoundation.Build.Client.dll , Microsoft.TeamFoundation.DeleteTeamProject.dll , Microsoft.TeamFoundation.Diff.dll , Microsoft.TeamFoundation.Git.Client.dll , Microsoft.TeamFoundation.SharePointReporting.Integration.dll itd. |
Instalowanie
Zainstaluj z poziomu wiersza polecenia menedżera pakietów NuGet:
PM> Install-Package Microsoft.TeamFoundationServer.ExtendedClient
Połącz
Aby utworzyć uwierzytelnione połączenie z usługą Azure DevOps, pobierz klienta HttpClient dla usługi, z którą chcesz pracować, a następnie wywołaj metody względem tej usługi.
Zobacz następujące przykłady:
using Microsoft.VisualStudio.Services.Common;
using Microsoft.VisualStudio.Services.Client;
using Microsoft.TeamFoundation.SourceControl.WebApi;
using Microsoft.VisualStudio.Services.WebApi;
const String c_collectionUri = "https://dev.azure.com/fabrikam";
const String c_projectName = "MyGreatProject";
const String c_repoName = "MyRepo";
Uri orgUrl = new Uri(c_collectionUri);
// Connect to Azure DevOps Services
VssConnection connection = new VssConnection(orgUrl, new VssBasicCredential(string.Empty, personalAccessToken));
// Get a GitHttpClient to talk to the Git endpoints
using (GitHttpClient gitClient = connection.GetClient<GitHttpClient>())
{
// Get data about a specific repository
var repo = gitClient.GetRepositoryAsync(c_projectName, c_repoName).Result;
}
Ścieżki uwierzytelniania, które tworzą interaktywne okno dialogowe, nie są dostępne w wersji .NET Standard bibliotek klienckich platformy .NET. Jeśli używasz wersji platformy .NET Standard, podaj swoje poświadczenia w bardziej przejrzysty sposób w celu uwierzytelnienia, tak jak w poniższym przykładzie.
using System;
using Microsoft.TeamFoundation.SourceControl.WebApi;
using Microsoft.VisualStudio.Services.Common;
using Microsoft.VisualStudio.Services.WebApi;
namespace ConsoleApp1
{
class Program
{
const string collectionUri = "https://dev.azure.com/fabrikam";
const string projectName = "MyGreatProject";
const string repoName = "MyRepo";
const string pat = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
static void Main(string[] args)
{
var creds = new VssBasicCredential(string.Empty, pat);
// Connect to Azure DevOps Services
var connection = new VssConnection(new Uri(collectionUri), creds);
// Get a GitHttpClient to talk to the Git endpoints
using var gitClient = connection.GetClient<GitHttpClient>();
// Get data about a specific repository
var repo = gitClient.GetRepositoryAsync(projectName, repoName).Result;
}
}
}
Aby uzyskać więcej przykładów uwierzytelniania, zobacz Przykłady .NET.
Źródło
Aby uzyskać więcej informacji i dokumentację referencyjną dotyczącą dat up-to, zobacz przeglądarkę API .NET .
Przykłady
Zapoznaj się z przykładami na naszej stronie .NET Samples Page lub bezpośrednio w naszym repozytorium GitHub .NET.
Aby uzyskać więcej informacji na temat pakietów NuGet, zobacz Microsoft.VisualStudio.Services.Client.
Znane problemy
Interaktywne okno dialogowe uwierzytelniania nie jest wyświetlane w przypadku korzystania z Modelu Obiektowego (OM) usługi Azure DevOps w trybie jednowątkowym (STA).
Okno dialogowe uwierzytelniania interaktywnego nie jest wyświetlane, jeśli kod działa z jednowątkowego mieszkania (STA). Ten problem często występuje w aplikacjach WPF. Aby obejść ten problem, możesz zmienić metodę inicjowania na asynchronizację i zażądać uwierzytelniania, jak w poniższym przykładzie.
async void InitAzureDevOps()
{
Uri _uri = new Uri("https://dev.azure.com/MyAccount/");
var creds = new VssClientCredentials(new WindowsCredential(false),
new VssFederatedCredential(false),
CredentialPromptType.PromptIfNeeded);
VssConnection vssConnection = new VssConnection(_uri, creds);
CancellationTokenSource source = new CancellationTokenSource();
CancellationToken token = source.Token;
await vssConnection.ConnectAsync(token);
...
}
Korzystanie z wersji NetStandard 2.0 modelu OM usługi Azure DevOps
W przypadku wersji 16.143.1 pakietów NuGet obsługujemy platformę NetStandard 2.0. Te pakiety są skorelowane z usługą Azure DevOps Server 2019 RTW i są w pełni zgodne z usługą Azure DevOps.
Pakiet Microsoft.TeamFoundationServer.ExtendedClient nie obsługuje biblioteki NetStandard.
Microsoft.TeamFoundationServer.ExtendedClient nie obsługuje zgodnej wersji NetStandard.
Ważne
Ten pakiet zawiera nasz starszy model obiektów SOAP, który zastąpiliśmy nowszym modelem obiektów REST. Nie inwestujemy już w starszy model obiektów PROTOKOŁU SOAP i nie planujemy utworzenia wersji NetStandard.