Bibliotecas de cliente .NET

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

Las bibliotecas cliente están disponibles para los desarrolladores de .NET que crean aplicaciones y servicios de Windows que se integran con Azure DevOps. Las bibliotecas cliente se integran con el seguimiento de elementos de trabajo, el control de versiones, la compilación y otros servicios. Estos paquetes reemplazan el instalador de OM del cliente TFS tradicional y facilitan la adquisición y redistribuir las bibliotecas necesarias para la aplicación o el servicio.

Sugerencia

Busque la clase de cliente y el método de API de .NET correspondientes mediante ejemplos de la biblioteca cliente de .NET y la referencia de la API de Azure DevOps.

Diagrama de dependencia

Diagrama de dependencias que muestra la relación entre Services.Client, Services.InteractiveClient y TeamFoundationServer.Client.

Características

  • Descargable desde NuGet.org y fácilmente importable en los proyectos de Visual Studio
  • Las bibliotecas tienen licencia para la redistribución en sus aplicaciones y servicios (ver la licencia)
  • Acceso tanto a las API tradicionales del modelo de objetos de cliente como a las API REST

Nota:

Los clientes basados en REST solo funcionan con Azure DevOps y TFS 2015 o posterior. Para más información sobre cómo ampliar e integrar con Azure DevOps mediante las bibliotecas cliente, consulte Extensión de Team Foundation.

Tabla de asignación de versiones de Azure DevOps y paquetes

Versión del paquete Versión de 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

Para ver las versiones preliminares más recientes, consulte la galería de paquetes NuGet.

Paquetes REST

Paquetes y descripción Binarios
Microsoft.VisualStudio.Services.Client
Proporciona acceso a servicios de plataforma compartida a través de API REST públicas, como organización, perfil, identidad, seguridad, etc.
Microsoft.VisualStudio.Services.WebApi.dll, , Microsoft.VisualStudio.Services.Common.dll, Microsoft.TeamFoundation.Common.dll
Microsoft.TeamFoundationServer.Client
Proporciona acceso al control de versiones, el seguimiento de elementos de trabajo, la compilación y mucho más a través de las API rest públicas.
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, etc.
Microsoft.VisualStudio.Services.InteractiveClient
Admite aplicaciones que requieren el inicio de sesión interactivo por parte de un usuario.
Microsoft.VisualStudio.Services.Client.Interactive.dll
Microsoft.VisualStudio.Services.Release.Client
Proporciona acceso al servicio release a través de las API rest públicas.
Microsoft.VisualStudio.Services.ReleaseManagement.WebApi.dll
Microsoft.TeamFoundation.DistributedTask.Common.Contracts
Proporciona los modelos usados para acceder al servicio de tareas distribuidas a través de las API REST públicas.
Microsoft.TeamFoundation.DistributedTask.Common.Contracts.dll
Microsoft.TeamFoundation.DistributedTask.WebApi
Proporciona acceso al servicio de tareas distribuidas a través de las API REST públicas.
Microsoft.TeamFoundation.DistributedTask.WebApi.dll
Microsoft.VisualStudio.Services.ServiceHooks.WebApi
Proporciona acceso al servicio de enlaces de servicio a través de las API REST públicas.
Microsoft.VisualStudio.Services.ServiceHooks.WebApi.dll
Microsoft.VisualStudio.Services.Gallery.WebApi
Proporciona acceso al servicio Gallery a través de las API REST públicas.
Microsoft.VisualStudio.Services.Gallery.WebApi.dll
Microsoft.VisualStudio.Services.Notifications.WebApi
Proporciona acceso al servicio de notificaciones a través de las API rest públicas.
Microsoft.VisualStudio.Services.Notifications.WebApi.dll
Microsoft.VisualStudio.Services.ExtensionManagement.WebApi
Proporciona acceso al servicio de administración de extensiones a través de las API REST públicas.
Microsoft.VisualStudio.Services.ExtensionManagement.WebApi.dll
Microsoft.VisualStudio.Services.MemberEntitlementManagement.WebApi
Proporciona acceso al servicio de administración de derechos de miembro a través de las API REST públicas.
Microsoft.VisualStudio.Services.MemberEntitlementManagement.WebApi.dll
Microsoft.VisualStudio.Services.ServiceEndpoints.WebApi
Proporciona acceso a los puntos de conexión de servicio a través de las API rest públicas.
Microsoft.VisualStudio.Services.ServiceEndpoints.WebApi.dll
Microsoft.VisualStudio.Services.Search.Client
Proporciona acceso al servicio de búsqueda a través de las API REST públicas.
Microsoft.VisualStudio.Services.Search.Shared.WebApi.dll, Microsoft.VisualStudio.Services.Search.WebApi.dll
Microsoft.TeamFoundation.PublishTestResults
Esta tarea se puede usar para publicar resultados de pruebas y cargar datos adjuntos de prueba en Azure DevOps. Los siguientes formatos de resultados se admiten con este paquete: 1. JUnit: publicar pruebas de proyectos junit, 2. NUnit: publicar pruebas de proyectos Nunit, 3. VSTest: publicar pruebas desde proyectos de Visual Studio, 4. Xunit: publicación de pruebas de proyectos de Xunit
Microsoft.TeamFoundation.TestClient.PublishTestResults.dll
Microsoft.VisualStudio.Services.Audit.WebApi
Proporciona acceso al servicio auditoría a través de las API rest públicas.
Microsoft.VisualStudio.Services.Audit.WebApi.dll
Microsoft.Azure.Pipelines.Policy.Client
Proporciona acceso a las aprobaciones de canalización, comprobaciones y autorización a través de las API REST públicas.
Microsoft.Azure.Pipelines.Policy.Client.dll

Sugerencia

Si tiene una aplicación o servicio de Windows existente que usa el modelo de objetos de cliente de TFS, use Microsoft.TeamFoundationServer.ExtendedClient.

Paquete soap

Paquete y descripción Archivos binarios
Microsoft.TeamFoundationServer.ExtendedClient
Trabaje con y administre el control de versiones, los elementos de trabajo y la compilación y otros recursos de la aplicación cliente. Este paquete no admite net Standard Client OM. Use este paquete solo cuando nuestras API REST no ofrezcan la funcionalidad que necesita (por ejemplo, crear áreas de trabajo en TFVC).
Microsoft.TeamFoundation.Build.Client.dll, Microsoft.TeamFoundation.DeleteTeamProject.dll, Microsoft.TeamFoundation.Diff.dll, Microsoft.TeamFoundation.Git.Client.dll, Microsoft.TeamFoundation.SharePointReporting.Integration.dll, etc.

Instalación

Instale desde un símbolo del sistema del administrador de paquetes NuGet:

PM> Install-Package Microsoft.TeamFoundationServer.ExtendedClient

Conexión

Para crear una conexión autenticada a Azure DevOps, obtenga un httpClient para el servicio con el que desea trabajar y, a continuación, llame a métodos en ese servicio.

Observe los siguientes ejemplos:

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

Las rutas de acceso de autenticación que generan un cuadro de diálogo interactivo no están disponibles en la versión de .NET Standard de las bibliotecas cliente de .NET. Cuando use la versión de .NET Standard, proporcione sus credenciales de forma más explícita para autenticarse, como en el ejemplo siguiente.

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

Para obtener más ejemplos de autenticación, consulte Ejemplos de .NET.

Referencia

Para obtener más información y para obtener documentación de referencia actualizada, consulte el explorador de API de .NET.

Ejemplos

Consulte ejemplos en nuestra página de ejemplos de .NET o directamente en nuestro repositorio de GitHub de .NET.

Para obtener más información sobre los paquetes NuGet, vea Microsoft.VisualStudio.Services.Client.

Problemas conocidos

El cuadro de diálogo de autenticación interactiva no aparece cuando se usa el OM de Azure DevOps en un único apartamento de subprocesos (STA)

El cuadro de diálogo de autenticación interactiva no aparece en los casos en los que el código se ejecuta desde un único apartamento subproceso (STA). Este problema se puede producir normalmente desde aplicaciones WPF . Para solucionar este problema, puede cambiar el método de inicialización para que sea asincrónico y solicitar autenticación como en el ejemplo siguiente.

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

    ...

}

Uso de las versiones netStandard 2.0 del OM de Azure DevOps

Para la versión 16.143.1 de nuestros paquetes NuGet, se admite NetStandard 2.0. Estos paquetes se correlacionan con Azure DevOps Server 2019 RTW y son totalmente compatibles con Azure DevOps.

El paquete Microsoft.TeamFoundationServer.ExtendedClient no tiene compatibilidad con NetStandard

Microsoft.TeamFoundationServer.ExtendedClient no admite una versión compatible con NetStandard.

Importante

Este paquete incluye nuestro modelo de objetos SOAP anterior, que reemplazamos por nuestro modelo de objetos REST más reciente. Ya no estamos invirtiendo en el modelo de objetos SOAP anterior y no tenemos planes para crear una versión de NetStandard.