Partilhar via


Bibliotecas cliente .NET

Azure DevOps Serviços | Azure DevOps Server | Azure DevOps Server 2022

Bibliotecas de clientes estão disponíveis para programadores .NET que criam aplicações e serviços Windows que se integram com o Azure DevOps. As bibliotecas de cliente integram-se com o acompanhamento de itens de trabalho, controle de versão, compilação e outros serviços. Esses pacotes facilitam a aquisição e a redistribuição das bibliotecas necessárias para seu aplicativo ou serviço.

Sugestão

Encontre a classe cliente .NET correspondente e o método da API, usando .NET Client Library Samples e Azure DevOps API Reference.

Diagrama de dependência

diagrama de dependência mostra a relação entre Services.Client, Services.InteractiveClient e TeamFoundationServer.Client.

Características das Bibliotecas Cliente .NET

As bibliotecas clientes .NET para Azure DevOps oferecem várias funcionalidades chave que facilitam a integração com serviços em Azure DevOps a partir das suas aplicações e serviços Windows:

  • Descarregável a partir de NuGet.org: Importa facilmente as bibliotecas para os teus projetos de Visual Studio descarregando-as de NuGet.org.
  • Licenciado para redistribuição: As bibliotecas são licenciadas para redistribuição em seus aplicativos e serviços. Você pode visualizar a licença para obter mais detalhes.
  • Acesso às APIs: Obter acesso tanto às APIs tradicionais de modelos de objeto cliente como às APIs REST para interagir com Azure DevOps programaticamente.
  • Suporte a desafios de direitos (claims): A partir da versão 20.259.0, as bibliotecas .NET clientes podem agora devolver tokens com desafios de direitos (claims) que podem ser usados para gerir de forma eficiente pedidos de reautenticação após eventos críticos da empresa (por exemplo, redefinições de palavra-passe, eliminações de contas, etc.) como parte do nosso suporte para avaliação de acesso contínuo. O suporte para Python e Go chegará na segunda metade de 2025.

Tabela de mapeamento de versão de pacotes e Azure DevOps

A tabela seguinte mapeia as versões dos pacotes das bibliotecas clientes .NET para as versões correspondentes do Azure DevOps Server. Use esta tabela para determinar qual a versão do pacote que corresponde à sua versão do Azure DevOps.

Versão do pacote Azure DevOps versão
16.205.x versions >= Azure DevOps Server 2022
16.170.x versions >= Azure DevOps Server 2020

Para obter as versões de visualização mais recentes, consulte a galeria de pacotes NuGet .

Pacotes REST

A tabela seguinte lista as bibliotecas clientes .NET disponíveis para aceder a vários serviços através de APIs REST públicas. Estes pacotes podem ser descarregados de NuGet.org e fornecem os binários necessários para integrar com Azure DevOps.

Pacotes e descrição Binários
Microsoft.VisualStudio.Services.Client
Fornece acesso a serviços de plataforma compartilhada por meio de APIs REST públicas, como organização, perfil, identidade, segurança e muito mais.
Microsoft.VisualStudio.Services.WebApi.dll, Microsoft.VisualStudio.Services.Common.dll, Microsoft.TeamFoundation.Common.dll
Microsoft.TeamFoundationServer.Client
Fornece acesso ao controle de versão, rastreamento de item de trabalho, compilação e muito mais por meio de APIs 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.dlle assim por diante.
Microsoft.VisualStudio.Services.InteractiveClient
Suporta aplicações que requerem início de sessão interativo por parte de um utilizador.
Microsoft.VisualStudio.Services.Client.Interactive.dll
Microsoft.VisualStudio.Services.Release.Client
Fornece acesso ao Release Service por meio de APIs REST públicas.
Microsoft.VisualStudio.Services.ReleaseManagement.WebApi.dll
Microsoft.TeamFoundation.DistributedTask.Common.Contracts
Fornece os modelos usados para acessar o Serviço de Tarefas Distribuídas por meio de APIs REST públicas.
Microsoft.TeamFoundation.DistributedTask.Common.Contracts.dll
Microsoft.TeamFoundation.DistributedTask.WebApi
Fornece acesso ao Serviço de Tarefas Distribuídas por meio de APIs REST públicas.
Microsoft.TeamFoundation.DistributedTask.WebApi.dll
Microsoft.VisualStudio.Services.ServiceHooks.WebApi
Fornece acesso ao Serviço de Ganchos de Serviço por meio de APIs REST públicas.
Microsoft.VisualStudio.Services.ServiceHooks.WebApi.dll
Microsoft.VisualStudio.Services.Gallery.WebApi
Fornece acesso ao Serviço de Galeria por meio de APIs REST públicas.
Microsoft.VisualStudio.Services.Gallery.WebApi.dll
Microsoft.VisualStudio.Services.Notifications.WebApi
Fornece acesso ao Serviço de Notificações por meio de APIs REST públicas.
Microsoft.VisualStudio.Services.Notifications.WebApi.dll
Microsoft.VisualStudio.Services.ExtensionManagement.WebApi
Fornece acesso ao Serviço de Gerenciamento de Extensões por meio de APIs REST públicas.
Microsoft.VisualStudio.Services.ExtensionManagement.WebApi.dll
Microsoft.VisualStudio.Services.MemberEntitlementManagement.WebApi
Fornece acesso ao Serviço de Gerenciamento de Direitos de Membro por meio de APIs REST públicas.
Microsoft.VisualStudio.Services.MemberEntitlementManagement.WebApi.dll
Microsoft.VisualStudio.Services.ServiceEndpoints.WebApi
Fornece acesso aos pontos de extremidade de serviço por meio de APIs REST públicas.
Microsoft.VisualStudio.Services.ServiceEndpoints.WebApi.dll
Microsoft.VisualStudio.Services.Search.Client
Fornece acesso ao Serviço de Pesquisa por meio de APIs REST públicas.
Microsoft.VisualStudio.Services.Search.Shared.WebApi.dll, Microsoft.VisualStudio.Services.Search.WebApi.dll
Microsoft.TeamFoundation.PublishTestResults
Esta tarefa pode ser usada para publicar resultados de testes e carregar anexos de teste no Azure DevOps. Os seguintes formatos de resultados são suportados com este pacote: 1. JUnit - publicar testes de projetos JUnit, 2. NUnit - publicar testes de projetos do NUnit 3. VSTest - publicar testes de projetos do Visual Studio, 4. Xunit - publicar testes de projetos Xunit.
Microsoft.TeamFoundation.TestClient.PublishTestResults.dll
Microsoft.VisualStudio.Services.Audit.WebApi
Fornece acesso ao Serviço de Auditoria por meio de APIs REST públicas.
Microsoft.VisualStudio.Services.Audit.WebApi.dll
Microsoft. Azure. Pipelines.Policy.Client
Fornece acesso às aprovações, verificações e autorizações do pipeline por meio de APIs REST públicas.
Microsoft.Azure.Pipelines.Policy.Client.dll

Sugestão

APIs SOAP legadas: Se tiver uma aplicação Windows existente que utiliza o Modelo de Objectos Cliente TFS, use Microsoft.TeamFoundationServer.ExtendedClient para APIs baseadas em SOAP. Este pacote só é recomendado quando as APIs REST não fornecem a funcionalidade específica necessária (como a criação de espaço de trabalho TFVC). Este pacote não suporta o padrão .NET e a Microsoft já não investe em APIs baseadas em SOAP.

Embalagem de sabão

A tabela seguinte lista as bibliotecas clientes .NET disponíveis para aceder a vários serviços através de APIs SOAP. Estes pacotes podem ser descarregados de NuGet.org e fornecem os binários necessários para integrar com Azure DevOps. Use esses pacotes somente quando as APIs REST não oferecerem a funcionalidade necessária, por exemplo, a criação de espaços de trabalho no TFVC.

Pacote e descrição Binários
Microsoft.TeamFoundationServer.ExtendedClient
Trabalhe com e gerencie controle de versão, itens de trabalho, compilação e outros recursos do seu aplicativo cliente. Este pacote não suporta Net Standard Client OM. Use este pacote apenas quando nossas APIs REST não oferecerem a funcionalidade necessária (por exemplo, criar espaços de trabalho no TFVC).
Microsoft.TeamFoundation.Build.Client.dll, Microsoft.TeamFoundation.DeleteTeamProject.dll, Microsoft.TeamFoundation.Diff.dll, Microsoft.TeamFoundation.Git.Client.dll, Microsoft.TeamFoundation.SharePointReporting.Integration.dlle assim por diante.

Instalar

Instale a partir de um prompt de comando do gerenciador de pacotes NuGet:

PM> Install-Package Microsoft.TeamFoundationServer.ExtendedClient

Conectar

Para criar uma ligação autenticada ao Azure DevOps, obtenha um HttpClient para o serviço com que pretende trabalhar e depois execute métodos nesse serviço.

Veja os seguintes exemplos:

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

Os caminhos de autenticação que produzem um diálogo interativo não estão disponíveis na versão .NET Standard das bibliotecas cliente .NET. Quando estiver a usar a versão .NET Standard, forneça as suas credenciais de forma mais explícita para autenticação, como no exemplo seguinte.

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

Sugestão

Autenticação Microsoft Entra ID: Os exemplos anteriores usam tokens Microsoft Entra ID para autenticação. Para mais informações, consulte Autenticar para Azure DevOps usando Microsoft Entra.

Para mais exemplos de autenticação, veja .NET Samples.

Referência

Para mais informações e para documentação de referência atualizada, consulte o navegador da API .NET.

Exemplos

Veja exemplos na nossa página de exemplos de .NET.

Para obter mais informações sobre pacotes NuGet, consulte Microsoft.VisualStudio.Services.Client.

Problemas conhecidos

O diálogo de autenticação interativa não aparece quando se utiliza o Azure DevOps OM num Single Threaded Apartment (STA).

A caixa de diálogo de autenticação interativa não aparece nos casos em que o seu código está a ser executado num Single Threaded Apartment (STA). Este problema pode ocorrer frequentemente em aplicações WPF. Para contornar esse problema, você pode alterar seu método de inicialização para ser assíncrono e solicitar autenticação como no exemplo a seguir.

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

    ...

}

Usando versões NetStandard 2.0 do Azure DevOps OM

Para a versão 16.143.1 dos nossos pacotes NuGet, suportamos NetStandard 2.0. Estes pacotes correlacionam-se com o Azure DevOps Server e são totalmente compatíveis com o Azure DevOps.

O pacote Microsoft.TeamFoundationServer.ExtendedClient não tem suporte a NetStandard

O Microsoft.TeamFoundationServer.ExtendedClient não suporta uma versão compatível com NetStandard.

Importante

Este pacote inclui nosso modelo de objeto SOAP mais antigo, que substituímos por nosso modelo de objeto REST mais recente. Não estamos mais investindo no modelo de objeto SOAP mais antigo e não temos planos de criar uma versão NetStandard dele.