Bibliothèques clientes .NET

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 remplacent le programme d’installation de l’om client TFS traditionnel et facilitent l’acquisition et la redistribution des bibliothèques nécessaires par votre application ou service.

Conseil

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 de dépendances

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

Fonctionnalités

  • Téléchargeable à partir de NuGet.org et facilement importable dans vos projets Visual Studio
  • Les bibliothèques sont concédées sous licence pour la redistribution dans vos applications et services (voir la licence)
  • Accéder aux API de modèle objet client traditionnelles et aux API REST

Remarque

Les clients REST fonctionnent uniquement avec Azure DevOps et TFS 2015 ou version ultérieure. Pour plus d’informations sur l’extension et l’intégration à Azure DevOps à l’aide des bibliothèques clientes, consultez Extension de Team Foundation.

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

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

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

Packages REST

Packages et description Composants 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.SourceControl.WebApi.dllMicrosoft.TeamFoundation.WorkItemTracking.Process.WebApi.dll, , Microsoft.TeamFoundation.TestManagement.WebApi.dllet 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 de service 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 les résultats des tests 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- publie 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 de pipeline, aux case activée et à l’autorisation via des API REST publiques.
Microsoft.Azure.Pipelines.Policy.Client.dll

Conseil

Si vous disposez d’une application ou d’un service Windows existant qui utilise le modèle objet client TFS, utilisez Microsoft.TeamFoundationServer.ExtendedClient.

Package Soap

Package et description Fichiers binaires
Microsoft.TeamFoundationServer.ExtendedClient
Utilisez et gérez le contrôle de version, les éléments de travail et la génération, ainsi que d’autres ressources à partir 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.Git.Client.dllMicrosoft.TeamFoundation.Diff.dll, , Microsoft.TeamFoundation.SharePointReporting.Integration.dllet ainsi de suite.

Installer

Installer à partir d’une invite de commandes du gestionnaire de package NuGet :

PM> Install-Package Microsoft.TeamFoundationServer.ExtendedClient

Se connecter

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.

Voici des exemples :

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 obtenir une documentation de référence à jour, consultez le navigateur d’API .NET.

Exemples

Consultez des exemples sur notre page d’exemples .NET ou directement sur notre dépôt GitHub .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 de l’om Azure DevOps dans un seul appartement threaded (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 seul appartement threaded (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);
    await vssConnection.ConnectAsync();

    ...

}

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.