Partager via


Bibliothèques .NET pour client

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019

Les bibliothèques clientes sont disponibles pour les développeurs .NET qui créent des applications et des services Windows qui s’intègrent à Azure DevOps. Les bibliothèques clientes s’intègrent au suivi des éléments de travail, au contrôle de version, à la génération et à d’autres services. Ces packages facilitent l’acquisition et la redistribution des bibliothèques nécessaires par votre application ou service.

Conseil / Astuce

Recherchez la classe cliente .NET correspondante et la méthode d’API, à l’aide d’exemples de bibliothèque de client .NET et de la référence de l’API Azure DevOps.

Diagramme des dépendances

Le diagramme des dépendances montre la relation entre Services.Client, Services.InteractiveClient et TeamFoundationServer.Client.

Fonctionnalités des bibliothèques clientes .NET

Les bibliothèques clientes .NET pour Azure DevOps offrent plusieurs fonctionnalités clés qui facilitent l’intégration aux services dans Azure DevOps à partir de vos applications et services Windows :

  • Téléchargeable à partir de NuGet.org : importez facilement les bibliothèques dans vos projets Visual Studio en les téléchargeant à partir de NuGet.org.
  • Licence pour la redistribution : les bibliothèques sont concédées sous licence pour la redistribution dans vos applications et services. Vous pouvez consulter la licence pour plus d’informations.
  • Accès aux API : accédez aux API de modèle objet client traditionnelles et aux API REST pour interagir avec Azure DevOps par programmation.

Table de mappage de versions d’Azure DevOps et de package

Le tableau suivant mappe les versions de package des bibliothèques clientes .NET aux versions correspondantes d’Azure DevOps Server. Utilisez ce tableau pour déterminer la version du package qui correspond à votre version d’Azure DevOps.

Version du package Version d’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

Pour connaître les dernières versions préliminaires, consultez la galerie de packages NuGet.

Packages REST

Le tableau suivant répertorie les bibliothèques clientes .NET disponibles pour accéder à différents services via des API REST publiques. Ces packages peuvent être téléchargés à partir de NuGet.org et fournir les fichiers binaires nécessaires pour s’intégrer à Azure DevOps.

Packages et description Fichiers binaires
Microsoft.VisualStudio.Services.Client
Fournit l’accès aux services de plateforme partagée via des API REST publiques, telles que l’organisation, le profil, l’identité, la sécurité, etc.
Microsoft.VisualStudio.Services.WebApi.dll, , Microsoft.VisualStudio.Services.Common.dllMicrosoft.TeamFoundation.Common.dll
Microsoft.TeamFoundationServer.Client
Fournit l’accès au contrôle de version, au suivi des éléments de travail, à la génération et plus encore via les API REST publiques.
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, et ainsi de suite.
Microsoft.VisualStudio.Services.InteractiveClient
Prend en charge les applications qui nécessitent une connexion interactive par un utilisateur.
Microsoft.VisualStudio.Services.Client.Interactive.dll
Microsoft.VisualStudio.Services.Release.Client
Fournit l’accès au service Release via des API REST publiques.
Microsoft.VisualStudio.Services.ReleaseManagement.WebApi.dll
Microsoft.TeamFoundation.DistributedTask.Common.Contracts
Fournit les modèles utilisés pour accéder au service de tâches distribué via des API REST publiques.
Microsoft.TeamFoundation.DistributedTask.Common.Contracts.dll
Microsoft.TeamFoundation.DistributedTask.WebApi
Fournit l’accès au service de tâches distribué via des API REST publiques.
Microsoft.TeamFoundation.DistributedTask.WebApi.dll
Microsoft.VisualStudio.Services.ServiceHooks.WebApi
Fournit l’accès au service de hooks pour services via des API REST publiques.
Microsoft.VisualStudio.Services.ServiceHooks.WebApi.dll
Microsoft.VisualStudio.Services.Gallery.WebApi
Fournit l’accès au service de galerie via des API REST publiques.
Microsoft.VisualStudio.Services.Gallery.WebApi.dll
Microsoft.VisualStudio.Services.Notifications.WebApi
Fournit l’accès au service de notifications via des API REST publiques.
Microsoft.VisualStudio.Services.Notifications.WebApi.dll
Microsoft.VisualStudio.Services.ExtensionManagement.WebApi
Fournit l’accès au service de gestion des extensions via des API REST publiques.
Microsoft.VisualStudio.Services.ExtensionManagement.WebApi.dll
Microsoft.VisualStudio.Services.MemberEntitlementManagement.WebApi
Fournit l’accès au service de gestion des droits des membres via des API REST publiques.
Microsoft.VisualStudio.Services.MemberEntitlementManagement.WebApi.dll
Microsoft.VisualStudio.Services.ServiceEndpoints.WebApi
Fournit l’accès aux points de terminaison de service via des API REST publiques.
Microsoft.VisualStudio.Services.ServiceEndpoints.WebApi.dll
Microsoft.VisualStudio.Services.Search.Client
Fournit l’accès au service de recherche via des API REST publiques.
Microsoft.VisualStudio.Services.Search.Shared.WebApi.dll, Microsoft.VisualStudio.Services.Search.WebApi.dll
Microsoft.TeamFoundation.PublishTestResults
Cette tâche peut être utilisée pour publier des résultats de test et charger des pièces jointes de test sur Azure DevOps. Les formats de résultats suivants sont pris en charge avec ce package : 1. JUnit - publier des tests à partir de projets JUnit, 2. NUnit : publiez des tests à partir de projets NUnit, 3. VSTest : publiez des tests à partir de projets Visual Studio, 4. Xunit - publier des tests à partir de projets Xunit.
Microsoft.TeamFoundation.TestClient.PublishTestResults.dll
Microsoft.VisualStudio.Services.Audit.WebApi
Fournit l’accès au service d’audit via des API REST publiques.
Microsoft.VisualStudio.Services.Audit.WebApi.dll
Microsoft.Azure.Pipelines.Policy.Client
Fournit l’accès aux approbations, vérifications et autorisations du pipeline via les API REST publiques.
Microsoft.Azure.Pipelines.Policy.Client.dll

Conseil / Astuce

Si vous disposez d’une application ou d’un service Windows existant qui utilise le modèle objet client TFS, utilisez Microsoft.TeamFoundationServer.ExtendedClient. Ce package fournit l’accès aux anciennes API BASÉEs sur SOAP, qui sont nécessaires pour certaines fonctionnalités non disponibles dans les API REST les plus récentes. Toutefois, ce package ne prend pas en charge .NET Standard et est destiné à être utilisé uniquement lorsque les API REST n’offrent pas les fonctionnalités requises.

Emballage de savon

Le tableau suivant répertorie les bibliothèques clientes .NET disponibles pour accéder à différents services via des API SOAP. Ces packages peuvent être téléchargés à partir de NuGet.org et fournir les fichiers binaires nécessaires pour s’intégrer à Azure DevOps. Utilisez uniquement ces packages lorsque les API REST ne proposent pas les fonctionnalités dont vous avez besoin, par exemple, la création d’espaces de travail dans TFVC.

Package et description Binaires
Microsoft.TeamFoundationServer.ExtendedClient
Utilisez et gérez le contrôle de version, les éléments de travail, la génération et d’autres ressources de votre application cliente. Ce package ne prend pas en charge l’om client Net Standard. Utilisez ce package uniquement lorsque nos API REST ne proposent pas les fonctionnalités dont vous avez besoin (par exemple, la création d’espaces de travail dans TFVC).
Microsoft.TeamFoundation.Build.Client.dll, Microsoft.TeamFoundation.DeleteTeamProject.dll, Microsoft.TeamFoundation.Diff.dll, Microsoft.TeamFoundation.Git.Client.dll, Microsoft.TeamFoundation.SharePointReporting.Integration.dll, et ainsi de suite.

Installez

Installer à partir d'une ligne de commande du gestionnaire de packages NuGet :

PM> Install-Package Microsoft.TeamFoundationServer.ExtendedClient

Connectez-vous

Pour créer une connexion authentifiée à Azure DevOps, obtenez un HttpClient pour le service avec lequel vous souhaitez travailler, puis appelez des méthodes sur ce service.

Consultez les exemples suivants :

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;
}

Les chemins d’authentification qui produisent une boîte de dialogue interactive ne sont pas disponibles dans la version .NET Standard des bibliothèques clientes .NET. Lorsque vous utilisez la version .NET Standard, fournissez vos informations d’identification plus explicitement pour vous authentifier, comme dans l’exemple suivant.

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;
        }
    }
}

Pour plus d’exemples d’authentification, consultez les exemples .NET.

Référence

Pour plus d'informations et pour la documentation de référence sur la date up-to, consultez l'explorateur d’API .NET.

Échantillons

Consultez les exemples de notre page d’exemples .NET.

Pour plus d’informations sur les packages NuGet, consultez Microsoft.VisualStudio.Services.Client.

Problèmes connus

La boîte de dialogue d'authentification interactive n'apparaît pas lors de l'utilisation du modèle objet Azure DevOps dans un appartement monothread (STA)

La boîte de dialogue d’authentification interactive n’apparaît pas dans les cas où votre code s’exécute à partir d’un appartement à thread unique (STA). Ce problème peut généralement se produire à partir d’applications WPF . Pour contourner ce problème, vous pouvez modifier votre méthode d’initialisation pour qu’elle soit asynchrone et demander l’authentification comme dans l’exemple suivant.

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);

    ...

}

Utilisation des versions de NetStandard 2.0 de l’om Azure DevOps

Pour la version 16.143.1 de nos packages NuGet, nous prenons en charge NetStandard 2.0. Ces packages sont corrélés avec Azure DevOps Server 2019 RTW et sont entièrement compatibles avec Azure DevOps.

Le package Microsoft.TeamFoundationServer.ExtendedClient ne prend pas en charge NetStandard

Microsoft.TeamFoundationServer.ExtendedClient ne prend pas en charge une version conforme à NetStandard.

Important

Ce package inclut notre ancien modèle objet SOAP, que nous avons remplacé par notre nouveau modèle objet REST. Nous n’investissons plus dans l’ancien modèle objet SOAP et n’avons pas l’intention de créer une version NetStandard de celle-ci.