Biblioteki klienckie platformy .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 zastępują tradycyjny instalator serwera TFS Client OM i ułatwiają uzyskiwanie i redystrybucję bibliotek wymaganych przez aplikację lub usługę.

Napiwek

Znajdź odpowiednią klasę klienta i metodę interfejsu API platformy .NET przy użyciu przykładów biblioteki klienta platformy .NET i dokumentacji interfejsu API usługi Azure DevOps.

Diagram zależności

Diagram zależności przedstawia relację między Services.Client, Services.InteractiveClient i TeamFoundationServer.Client.

Funkcje

  • Pobieranie z NuGet.org i łatwe importowanie do projektów programu Visual Studio
  • Biblioteki są licencjonowane do redystrybucji w aplikacjach i usługach (wyświetl licencję)
  • Uzyskiwanie dostępu zarówno do tradycyjnych interfejsów API modelu obiektów klienta, jak i interfejsów API REST

Uwaga

Klienci oparty na protokole REST pracują tylko z usługami Azure DevOps i TFS 2015 lub nowszymi. Aby uzyskać więcej informacji na temat rozszerzania i integrowania z usługą Azure DevOps przy użyciu bibliotek klienckich, zobacz Rozszerzanie programu Team Foundation.

Tabela mapowania wersji pakietu i 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
15.131.x versions >= TFS 2018 Update 1
15.112.x versions >= TFS 2017 Update 1
14.102.x versions >= TFS 2015 Update 3
14.95.x versions >= TFS 2015 Update 2
14.89.x versions >= TFS 2015 Update 1
14.83.x versions >= TFS 2015

Najnowsze wersje zapoznawcza można znaleźć w galerii pakietów NuGet.

Pakiety REST

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.dllMicrosoft.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.SourceControl.WebApi.dllMicrosoft.TeamFoundation.WorkItemTracking.Process.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ń potoków, kontroli i autoryzacji za pośrednictwem publicznych interfejsów API REST.
Microsoft.Azure.Pipelines.Policy.Client.dll

Napiwek

Jeśli masz istniejącą aplikację lub usługę systemu Windows korzystającą z modelu obiektów klienta TFS, użyj polecenia Microsoft.TeamFoundationServer.ExtendedClient.

Pakiet soap

Pakiet i opis Pliki binarne
Microsoft.TeamFoundationServer.ExtendedClient
Współpracuj z kontrolą wersji, elementami roboczymi i tworzeniem oraz innymi zasobami z aplikacji klienckiej i zarządzaj nimi. Ten pakiet nie obsługuje pakietu Net Standard Client OM. Tego pakietu należy używać 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.Git.Client.dllMicrosoft.TeamFoundation.Diff.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 poniższe 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 poświadczenia bardziej jawnie do 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 dla platformy .NET.

Odwołanie

Aby uzyskać więcej informacji i uzyskać aktualną dokumentację referencyjną, zobacz przeglądarkę interfejsu API platformy .NET.

Przykłady

Zapoznaj się z przykładami na naszej stronie przykładów platformy .NET lub bezpośrednio w repozytorium GitHub platformy .NET.

Aby uzyskać więcej informacji na temat pakietów NuGet, zobacz Microsoft.VisualStudio.Services.Client.

Znane problemy

Okno dialogowe uwierzytelniania interakcyjnego nie jest wyświetlane w przypadku korzystania z OM usługi Azure DevOps w jednym wątkowym mieszkaniu (STA)

Okno dialogowe uwierzytelniania interakcyjnego nie jest wyświetlane w przypadkach, w których kod jest uruchamiany z poziomu apartamentu jednowątkowego (STA). Ten problem często występuje z aplikacji 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);
    await vssConnection.ConnectAsync();

    ...

}

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

Obiekt 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.