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 sostituiscono il tradizionale programma di installazione di TFS Client OM e semplificano l'acquisizione e la ridistribuzione delle librerie necessarie per l'app o il servizio.

Suggerimento

Trovare il metodo API e la classe client .NET corrispondenti usando gli esempi della libreria client .NET e le informazioni di riferimento sulle API di Azure DevOps.

Diagramma delle dipendenze

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

Funzionalità

  • Scaricabile da NuGet.org e facilmente importabile nei progetti di Visual Studio
  • Le librerie sono concesse in licenza per la ridistribuzione nelle app e nei servizi (visualizzare la licenza)
  • Accedere alle API del modello a oggetti client tradizionali e alle API REST

Nota

I client basati su REST funzionano solo con Azure DevOps e TFS 2015 o versione successiva. Per altre informazioni sull'estensione e l'integrazione con Azure DevOps usando le librerie client, vedere Estensione di Team Foundation.

Tabella di mapping delle versioni di Package e Azure DevOps

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

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

Pacchetti REST

Pacchetti e descrizione File 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.SourceControl.WebApi.dll, , Microsoft.TeamFoundation.TestManagement.WebApi.dlle così via. Microsoft.TeamFoundation.WorkItemTracking.Process.WebApi.dll
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 Raccolta tramite LE 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 entitlement dei membri tramite LE API REST 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 dai progetti Junit, 2. NUnit: pubblicare test dai 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.

Pacchetto Soap

Pacchetto e descrizione File binari
Microsoft.TeamFoundationServer.ExtendedClient
Usare e gestire il controllo della versione, gli elementi di lavoro e 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.Git.Client.dll, , Microsoft.TeamFoundation.SharePointReporting.Integration.dlle così via. Microsoft.TeamFoundation.Diff.dll

Installare

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

PM> Install-Package Microsoft.TeamFoundationServer.ExtendedClient

Connessione

Per creare una connessione autenticata ad Azure DevOps, ottenere un HttpClient per il servizio da usare e quindi chiamare 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 Esempi di .NET.

Riferimento

Per altre informazioni e per la documentazione di riferimento aggiornata, vedere browser API .NET.

Esempi

Vedere gli esempi nella pagina degli esempi .NET o direttamente nel repository GitHub .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 usa l'om di Azure DevOps in un apartment a thread singolo (STA)

La finestra di dialogo di autenticazione interattiva non viene visualizzata nei casi in cui il codice è in esecuzione da un apartment a thread singolo (STA). Questo problema può verificarsi comunemente dalle 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);
    await vssConnection.ConnectAsync();

    ...

}

Uso di NetStandard 2.0 delle versioni 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

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.