Condividi tramite


Librerie client .NET

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

Le librerie client sono disponibili per gli sviluppatori .NET che creano app e servizi Windows che si integrano con Azure DevOps. Le librerie client si integrano con il rilevamento degli elementi di lavoro, il controllo della versione, la compilazione e altri servizi. Questi pacchetti semplificano l'acquisizione e la ridistribuzione delle librerie necessarie per l'app o il servizio.

Suggerimento

Trova la classe client .NET e il metodo API corrispondenti usando Esempi di libreria client .NET e il Riferimento API di Azure DevOps.

Diagramma delle dipendenze

diagramma delle dipendenze mostra la relazione tra Services.Client, Services.InteractiveClient e TeamFoundationServer.Client.

Funzionalità delle librerie client .NET

Le librerie client .NET per Azure DevOps offrono diverse funzionalità chiave che semplificano l'integrazione con i servizi in Azure DevOps dalle applicazioni e dai servizi Windows:

  • scaricabile da NuGet.org: importare facilmente le librerie nei progetti di Visual Studio scaricandole da NuGet.org.
  • Concesso in licenza per la ridistribuzione: Le librerie sono concesse in licenza per la ridistribuzione nelle tue app e servizi. È possibile visualizzare la licenza per ulteriori dettagli.
  • L'accesso alle API: ottenere l'accesso sia alle API del modello a oggetti client tradizionali sia alle API REST per interagire con Azure DevOps programmaticamente.

Tabella di mapping delle versioni di Package e Azure DevOps

La tabella seguente esegue il mapping delle versioni del pacchetto delle librerie client .NET alle versioni corrispondenti di Azure DevOps Server. Usare questa tabella per determinare la versione del pacchetto corrispondente alla versione di Azure DevOps.

Versione del pacchetto Versione di 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

Per le versioni di anteprima più recenti, vedere la raccolta di pacchetti NuGet .

Pacchetti REST

Nella tabella seguente sono elencate le librerie client .NET disponibili per l'accesso a vari servizi tramite API REST pubbliche. Questi pacchetti possono essere scaricati da NuGet.org e forniscono i file binari necessari per l'integrazione con Azure DevOps.

Pacchetti e descrizione Binari
Microsoft.VisualStudio.Services.Client
Fornisce l'accesso ai servizi della piattaforma condivisa tramite API REST pubbliche, ad esempio organizzazione, profilo, identità, sicurezza e altro ancora.
Microsoft.VisualStudio.Services.WebApi.dll, Microsoft.VisualStudio.Services.Common.dll, Microsoft.TeamFoundation.Common.dll
Microsoft.TeamFoundationServer.Client
Fornisce l'accesso al controllo della versione, al rilevamento degli elementi di lavoro, alla compilazione e altro ancora tramite LE API REST pubbliche.
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 così via.
Microsoft.VisualStudio.Services.InteractiveClient
Supporta le applicazioni che richiedono l'accesso interattivo da parte di un utente.
Microsoft.VisualStudio.Services.Client.Interactive.dll
Microsoft.VisualStudio.Services.Release.Client
Fornisce l'accesso al servizio di rilascio tramite LE API REST pubbliche.
Microsoft.VisualStudio.Services.ReleaseManagement.WebApi.dll
Microsoft.TeamFoundation.DistributedTask.Common.Contracts
Fornisce i modelli usati per accedere al servizio attività distribuita tramite LE API REST pubbliche.
Microsoft.TeamFoundation.DistributedTask.Common.Contracts.dll
Microsoft.TeamFoundation.DistributedTask.WebApi
Fornisce l'accesso al Servizio Attività Distribuita tramite le API REST pubbliche.
Microsoft.TeamFoundation.DistributedTask.WebApi.dll
Microsoft.VisualStudio.Services.ServiceHooks.WebApi
Fornisce l'accesso al servizio Service Hooks tramite LE API REST pubbliche.
Microsoft.VisualStudio.Services.ServiceHooks.WebApi.dll
Microsoft.VisualStudio.Services.Gallery.WebApi
Fornisce l'accesso al servizio di galleria tramite API REST pubbliche.
Microsoft.VisualStudio.Services.Gallery.WebApi.dll
Microsoft.VisualStudio.Services.Notifications.WebApi
Fornisce l'accesso al servizio notifiche tramite LE API REST pubbliche.
Microsoft.VisualStudio.Services.Notifications.WebApi.dll
Microsoft.VisualStudio.Services.ExtensionManagement.WebApi
Fornisce l'accesso al servizio di gestione delle estensioni tramite LE API REST pubbliche.
Microsoft.VisualStudio.Services.ExtensionManagement.WebApi.dll
Microsoft.VisualStudio.Services.MemberEntitlementManagement.WebApi
Fornisce l'accesso al servizio di gestione dei diritti dei membri tramite le REST API pubbliche.
Microsoft.VisualStudio.Services.MemberEntitlementManagement.WebApi.dll
Microsoft.VisualStudio.Services.ServiceEndpoints.WebApi
Fornisce l'accesso agli endpoint di servizio tramite LE API REST pubbliche.
Microsoft.VisualStudio.Services.ServiceEndpoints.WebApi.dll
Microsoft.VisualStudio.Services.Search.Client
Fornisce l'accesso al servizio di ricerca tramite LE API REST pubbliche.
Microsoft.VisualStudio.Services.Search.Shared.WebApi.dll, Microsoft.VisualStudio.Services.Search.WebApi.dll
Microsoft.TeamFoundation.PublishTestResults
Questa attività può essere usata per pubblicare i risultati dei test e caricare allegati di test in Azure DevOps. I formati di risultati seguenti sono supportati con questo pacchetto: 1. JUnit: pubblicare test da progetti JUnit, 2. NUnit: pubblicare test da progetti NUnit, 3. VSTest: pubblicare test da progetti di Visual Studio, 4. Xunit: pubblicare test da progetti Xunit.
Microsoft.TeamFoundation.TestClient.PublishTestResults.dll
Microsoft.VisualStudio.Services.Audit.WebApi
Fornisce l'accesso al servizio di controllo tramite LE API REST pubbliche.
Microsoft.VisualStudio.Services.Audit.WebApi.dll
Microsoft.Azure.Pipelines.Policy.Client
Fornisce l'accesso alle approvazioni, ai controlli e all'autorizzazione della pipeline tramite LE API REST pubbliche.
Microsoft.Azure.Pipelines.Policy.Client.dll

Suggerimento

Se si dispone di un'applicazione o di un servizio Windows esistente che usa il modello a oggetti client TFS, usare Microsoft.TeamFoundationServer.ExtendedClient. Questo pacchetto fornisce l'accesso alle API basate su SOAP meno recenti, necessarie per determinate funzionalità non disponibili nelle API REST più recenti. Tuttavia, questo pacchetto non supporta .NET Standard ed è destinato all'uso solo quando le API REST non offrono le funzionalità necessarie.

Confezione di sapone

Nella tabella seguente sono elencate le librerie client .NET disponibili per l'accesso a vari servizi tramite API SOAP. Questi pacchetti possono essere scaricati da NuGet.org e forniscono i file binari necessari per l'integrazione con Azure DevOps. Usare questi pacchetti solo quando le API REST non offrono le funzionalità necessarie, ad esempio la creazione di aree di lavoro in TFVC.

Pacchetto e descrizione File binari
Microsoft.TeamFoundationServer.ExtendedClient
Usare e gestire il controllo della versione, gli elementi di lavoro, la compilazione e altre risorse dall'applicazione client. Questo pacchetto non supporta Net Standard Client OM. Usare questo pacchetto solo quando le API REST non offrono le funzionalità necessarie, ad esempio la creazione di aree di lavoro in TFVC.
Microsoft.TeamFoundation.Build.Client.dll, Microsoft.TeamFoundation.DeleteTeamProject.dll, Microsoft.TeamFoundation.Diff.dll, Microsoft.TeamFoundation.Git.Client.dll, Microsoft.TeamFoundation.SharePointReporting.Integration.dlle così via.

Installare

Eseguire l'installazione da un prompt dei comandi di Gestione pacchetti NuGet:

PM> Install-Package Microsoft.TeamFoundationServer.ExtendedClient

Connettersi

Per creare una connessione autenticata ad Azure DevOps, ottieni un HttpClient per il servizio con cui lavorare e quindi chiama i metodi per tale servizio.

Vedere gli esempi seguenti:

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

I percorsi di autenticazione che producono una finestra di dialogo interattiva non sono disponibili nella versione .NET Standard delle librerie client .NET. Quando si usa la versione .NET Standard, specificare le credenziali in modo più esplicito per l'autenticazione, come nell'esempio seguente.

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

Per altri esempi di autenticazione, vedere .NET Esempi.

Riferimento

Per altre informazioni e per up-todocumentazione di riferimento sulla data, vedere il browser dell'API .NET .

Esempi

Consulta gli esempi sulla nostra pagina esempi di .NET o direttamente sul nostro repository GitHub di .NET .

Per altre informazioni sui pacchetti NuGet, vedere Microsoft.VisualStudio.Services.Client.

Problemi noti

La finestra di dialogo di autenticazione interattiva non viene visualizzata quando si utilizza l'Object Model di Azure DevOps in un Single Threaded Apartment (STA)

La finestra di dialogo di autenticazione interattiva non viene visualizzata nei casi in cui il codice viene eseguito da un apartment a thread singolo (STA). Questo problema può comunemente verificarsi nelle applicazioni WPF. Per risolvere questo problema, è possibile modificare il metodo di inizializzazione in modo che sia asincrono e richiedere l'autenticazione come nell'esempio seguente.

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 delle versioni di NetStandard 2.0 di Azure DevOps OM

Per la versione 16.143.1 dei pacchetti NuGet, è supportato NetStandard 2.0. Questi pacchetti sono correlati ad Azure DevOps Server 2019 RTW e sono completamente compatibili con Azure DevOps.

Il pacchetto Microsoft.TeamFoundationServer.ExtendedClient non supporta NetStandard

Il Microsoft.TeamFoundationServer.ExtendedClient non supporta una versione conforme a NetStandard.

Importante

Questo pacchetto include il modello a oggetti SOAP precedente, sostituito dal modello a oggetti REST più recente. Non stiamo più investendo nel modello a oggetti SOAP precedente e non abbiamo intenzione di crearne una versione NetStandard.