Bibliotecas de cliente .NET

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

As bibliotecas de cliente estão disponíveis para desenvolvedores .NET que criam aplicativos e serviços do Windows que se integram ao Azure DevOps. As bibliotecas de cliente integram-se ao controle de item de trabalho, controle de versão, compilação e outros serviços. Esses pacotes substituem o instalador tradicional do OM do Cliente TFS e facilitam a aquisição e a redistribuição das bibliotecas necessárias ao seu aplicativo ou serviço.

Dica

Localize a classe de cliente .NET e o método de API correspondentes, usando Exemplos de Biblioteca de Cliente .NET e Referência de API de DevOps do Azure.

Diagrama de dependências

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

Recursos

  • Transferível a partir do NuGet.org e facilmente importável para os seus projetos do Visual Studio
  • As bibliotecas são licenciadas para redistribuição em seus aplicativos e serviços (exibir a licença)
  • Acessar APIs de modelo de objeto de cliente tradicionais e APIs REST

Observação

Os clientes baseados em REST só funcionam com o Azure DevOps e o TFS 2015 ou posterior. Para obter mais informações sobre como estender e integrar com o Azure DevOps usando as bibliotecas de cliente, consulte Estendendo o Team Foundation.

Tabela de mapeamento de versão do Package and 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
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 obter as versões de visualização mais recentes, consulte a galeria de pacotes NuGet.

Pacotes REST

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, controle 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
Oferece 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 Versã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 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ão 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
Essa tarefa pode ser usada para publicar resultados de teste 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 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ção de pipeline por meio de APIs REST públicas.
Microsoft.Azure.Pipelines.Policy.Client.dll

Dica

Se você tiver um aplicativo ou serviço existente do Windows que usa o Modelo de Objeto de Cliente do TFS, use Microsoft.TeamFoundationServer.ExtendedClient.

Pacote de sabão

Pacote e descrição Binários
Microsoft.TeamFoundationServer.ExtendedClient
Trabalhe com e gerencie controle de versão, itens de trabalho e compilação e outros recursos de seu aplicativo cliente. Este pacote não suporta Net Standard Client OM. Use este pacote somente quando nossas APIs REST não oferecerem a funcionalidade de que você precisa (por exemplo, criando 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 conexão autenticada com o Azure DevOps, obtenha um HttpClient para o serviço com o qual você deseja trabalhar e chame métodos nesse serviço.

Veja os exemplos a seguir:

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 caminhos de autenticação que produzem uma caixa de diálogo interativa não estão disponíveis na versão .NET Standard das bibliotecas de cliente .NET. Quando você estiver usando a versão do .NET Standard, forneça suas credenciais mais explicitamente 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 Exemplos do .NET.

Referência

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

Exemplos

Confira exemplos em nossa página de exemplos do .NET ou diretamente em nosso repositório do .NET GitHub.

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 OM de DevOps do Azure em um STA (Single Threaded Apartment)

A caixa de diálogo de autenticação interativa não aparece nos casos em que seu código está sendo executado a partir de um STA (Single Threaded Apartment ). Esse problema pode ocorrer normalmente a partir de aplicativos WPF . Para contornar esse problema, você pode alterar o 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);
    await vssConnection.ConnectAsync();

    ...

}

Usando versões NetStandard 2.0 do OM do Azure DevOps

Para a versão 16.143.1 de nossos pacotes NuGet, oferecemos 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 a NetStandard

O Microsoft.TeamFoundationServer.ExtendedClient não oferece suporte a 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.