Compartilhar via


Bibliotecas de clientes do .NET

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

As bibliotecas de cliente estão disponíveis para desenvolvedores do .NET que criam aplicativos e serviços do Windows que se integram ao Azure DevOps. As bibliotecas de cliente se integram ao rastreamento de itens de trabalho, controle de versão, construção e outros serviços. Esses pacotes facilitam a aquisição e redistribuição das bibliotecas necessárias para seu aplicativo ou serviço.

Dica

Localize a classe de cliente .NET correspondente e o método de API correspondente, usando exemplos da Biblioteca de Clientes .NET e a Referência da API do Azure DevOps .

Diagrama de dependência

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

Recursos das bibliotecas cliente do .NET

As bibliotecas de clientes do .NET para o Azure DevOps oferecem vários recursos importantes que facilitam a integração com serviços no Azure DevOps de seus aplicativos e serviços do Windows:

  • Disponível para download em NuGet.org: importe facilmente as bibliotecas nos seus projetos do Visual Studio baixando-as de NuGet.org.
  • Licenciado para redistribuição: as bibliotecas são licenciadas para redistribuição em seus aplicativos e serviços. Você pode exibir a licença para obter mais detalhes.
  • Acesso a APIs: obtenha acesso às APIs tradicionais do modelo de objeto cliente e APIs REST, para interagir com o Azure DevOps programaticamente.

Tabela de mapeamento de versão do Pacote e do Azure DevOps

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

Versão do pacote Versão do 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

Para as versões prévias mais recentes, consulte a galeria de pacotes NuGet .

Pacotes REST

A tabela a seguir lista as bibliotecas de clientes do .NET disponíveis para acessar vários serviços por meio de APIs REST públicas. Esses pacotes podem ser baixados de NuGet.org e fornecer os binários necessários para integração com o Azure DevOps.

Pacotes e descrição Binários
Microsoft.VisualStudio.Services.Client
Fornece acesso aos 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 a controle de versão, acompanhamento de item de trabalho, build 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
Dá suporte a aplicativos que exigem entrada interativa por um usuário.
Microsoft.VisualStudio.Services.Client.Interactive.dll
Microsoft.VisualStudio.Services.Release.Client
Fornece acesso ao Serviço de Liberação 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 Tarefa Distribuída por meio de APIs REST públicas.
Microsoft.TeamFoundation.DistributedTask.Common.Contracts.dll
Microsoft.TeamFoundation.DistributedTask.WebApi
Fornece acesso ao Serviço de Tarefa Distribuída 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 Endpoints 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
Essa tarefa pode ser usada para publicar resultados de teste e carregar anexos de teste no Azure DevOps. Há suporte para os seguintes formatos de resultados com este pacote: 1. JUnit – publicar testes de projetos JUnit, 2. NUnit – publicar testes de projetos NUnit, versão 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ção do pipeline por meio de APIs REST públicas.
Microsoft.Azure.Pipelines.Policy.Client.dll

Dica

Se você tiver um aplicativo ou serviço do Windows existente que use o modelo de objeto do cliente TFS, use Microsoft.TeamFoundationServer.ExtendedClient. Esse pacote fornece acesso às APIs baseadas em SOAP mais antigas, que são necessárias para determinadas funcionalidades não disponíveis nas APIs REST mais recentes. No entanto, esse pacote não dá suporte ao .NET Standard e destina-se a ser usado somente quando as APIs REST não oferecem a funcionalidade necessária.

Pacote de sabonete

A tabela a seguir lista as bibliotecas de clientes do .NET disponíveis para acessar vários serviços por meio de APIs SOAP. Esses pacotes podem ser baixados de NuGet.org e fornecer os binários necessários para integração com o Azure DevOps. Use esses pacotes somente quando as APIs REST não oferecerem a funcionalidade necessária, por exemplo, a criação de workspaces no TFVC.

Pacote e distribuição Binários
Microsoft.TeamFoundationServer.ExtendedClient
Trabalhe com e gerencie controle de versão, itens de trabalho, build e outros recursos do seu aplicativo cliente. Esse pacote não dá suporte ao OM do Cliente Net Standard. Use esse pacote somente quando nossas APIs REST não oferecerem a funcionalidade necessária (por exemplo, criar workspaces 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 do NuGet:

PM> Install-Package Microsoft.TeamFoundationServer.ExtendedClient

Conectar

Para criar uma conexão autenticada com o Azure DevOps, obtenha um HttpClient para o serviço que você quer usar e depois chame os métodos desse 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 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;
}

Os métodos de autenticação que produzem um diálogo interativo não estão disponíveis na versão .NET Standard das bibliotecas cliente do .NET. Quando você estiver usando a versão do .NET Standard, forneça suas credenciais de forma mais explícita para autenticar, como no exemplo a seguir.

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 obter mais exemplos de autenticação, consulte os exemplos do .NET .

Referência

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

Exemplos

Confira exemplos em nossa página de exemplos do .NET.

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

Problemas conhecidos

A caixa de diálogo de autenticação interativa não aparece ao usar o Azure DevOps OM em um STA (Single Threaded Apartment)

A caixa de diálogo de autenticação interativa não aparece nos casos em que o código está em execução em um STA (Single Threaded Apartment). Esse problema geralmente pode ocorrer de aplicativos 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);

    ...

}

Uso das versões do NET Standard 2.0 do Azure DevOps OM

Para a versão 16.143.1 de nossos pacotes NuGet, damos suporte ao NetStandard 2.0. Esses pacotes se correlacionam com o Azure DevOps Server 2019 RTW e são totalmente compatíveis com o Azure DevOps.

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

O Microsoft.TeamFoundationServer.ExtendedClient não dá suporte a uma versão compatível com o NetStandard.

Importante

Esse 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 do NetStandard dele.