Compartir a través de


Bibliotecas cliente de .NET

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

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

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

Características de las bibliotecas de cliente de .NET

Las bibliotecas cliente de .NET para Azure DevOps ofrecen varias características clave que facilitan la integración con los servicios de Azure DevOps desde sus aplicaciones y servicios de Windows:

  • Descargable desde NuGet.org: importe fácilmente las bibliotecas en los proyectos de Visual Studio descargandolas desde NuGet.org.
  • Licencia para la redistribución: las bibliotecas tienen licencia para la redistribución en sus aplicaciones y servicios. Puede ver la licencia para obtener más detalles.
  • Acceso a las API: obtenga acceso a las API tradicionales del modelo de objetos de cliente y a las API REST para interactuar con Azure DevOps mediante programación.
  • Compatibilidad con desafíos de declaraciones: a partir de la versión 20.259.0, las bibliotecas de cliente .NET ahora pueden devolver tokens con desafíos de declaraciones que se pueden usar para controlar correctamente las solicitudes de reautenticación después de eventos críticos de la empresa (por ejemplo, restablecimientos de contraseña, eliminaciones de cuentas, etc.) como parte de nuestra compatibilidad con la evaluación continua del acceso. Compatibilidad con Python y Go estará disponible en la segunda mitad de 2025.

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

En la tabla siguiente se asignan las versiones de paquete de las bibliotecas cliente de .NET a las versiones correspondientes de Azure DevOps Server. Use esta tabla para determinar qué versión del paquete corresponde a la versión de Azure DevOps.

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

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

Paquetes REST

En la tabla siguiente se enumeran las bibliotecas cliente de .NET disponibles para acceder a varios servicios a través de las API REST públicas. Estos paquetes se pueden descargar de NuGet.org y proporcionar los archivos binarios necesarios para integrarse con Azure DevOps.

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 de lanzamiento a través de las APIs 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 3: publicar pruebas desde proyectos NUnit. VSTest: publicar pruebas desde proyectos de Visual Studio, 4. Xunit: publica pruebas de proyectos de Xunit.
Microsoft.TeamFoundation.TestClient.PublishTestResults.dll
Microsoft.VisualStudio.Services.Audit.WebApi
Proporciona acceso al Servicio de 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

API SOAP heredadas: si tiene una aplicación de Windows existente que usa el modelo de objetos de cliente de TFS, use Microsoft.TeamFoundationServer.ExtendedClient para las API basadas en SOAP. Este paquete solo se recomienda cuando las API REST no proporcionan la funcionalidad específica que necesita (como la creación del área de trabajo de TFVC). Este paquete no admite .NET Standard y Microsoft ya no invierte en API basadas en SOAP.

Paquete de jabón

En la tabla siguiente se enumeran las bibliotecas cliente de .NET disponibles para acceder a varios servicios a través de las API SOAP. Estos paquetes se pueden descargar de NuGet.org y proporcionar los archivos binarios necesarios para integrarse con Azure DevOps. Use solo estos paquetes cuando las API REST no ofrezcan la funcionalidad que necesita, por ejemplo, la creación de áreas de trabajo en TFVC.

Paquete y descripción Binarios
Microsoft.TeamFoundationServer.ExtendedClient
Trabaje con y administre el control de versiones, los elementos de trabajo, la compilación y otros recursos de la aplicación cliente. Este paquete no admite net Standard Client OM. Use solo este paquete cuando nuestras API REST no ofrezcan la funcionalidad que necesita (por ejemplo, la creación de á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.

Instalar

Se instala desde la línea de comandos 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.

Vea los ejemplos siguientes:

using Microsoft.VisualStudio.Services.Common;
using Microsoft.VisualStudio.Services.Client;
using Microsoft.TeamFoundation.SourceControl.WebApi;
using Microsoft.VisualStudio.Services.WebApi;

const string collectionUri = "https://dev.azure.com/fabrikam";
const string projectName = "MyGreatProject";
const string repoName = "MyRepo";
const string accessToken = "your-microsoft-entra-id-token";

Uri orgUrl = new Uri(collectionUri);

// Connect to Azure DevOps using Microsoft Entra ID token
VssConnection connection = new VssConnection(orgUrl, new VssBasicCredential(string.Empty, accessToken));

// 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(projectName, repoName).Result;
}

Las rutas 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 de cliente .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 accessToken = "your-microsoft-entra-id-token";

        static void Main(string[] args)
        {
            var creds = new VssBasicCredential(string.Empty, accessToken);
            
            // Connect to Azure DevOps Services using Microsoft Entra ID token
            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;
        }
    }
}

Sugerencia

Autenticación de Id. de Microsoft Entra: en los ejemplos anteriores se usan tokens de id. de Microsoft Entra para la autenticación. Para más información, consulte Autenticación en Azure DevOps mediante Microsoft Entra.

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

Referencia

Para obtener más información y documentación de referencia de up-to-date, consulte el navegador de API de .NET.

Muestras

Consulte ejemplos en nuestra página de ejemplos 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 utiliza Azure DevOps OM en un Single Threaded Apartment (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 Single Threaded Apartment (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);
    CancellationTokenSource source = new CancellationTokenSource();
    CancellationToken token = source.Token;
    await vssConnection.ConnectAsync(token);

    ...

}

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