Librerie client .NET

Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 - TFS 2013

Le librerie client sono disponibili per gli sviluppatori .NET che Windows app e servizi 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 programma di installazione OM client TFS tradizionale e semplificano l'acquisizione e la ridistribuzione delle librerie necessarie per l'app o il servizio.

Suggerimento

Per altre informazioni, vedere informazioni Azure DevOps riferimento all'API REST.

Diagramma delle dipendenze

Diagramma delle dipendenze che illustra la relazione tra Services.Client, Services.InteractiveClient e TeamFoundationServer.Client.

Funzionalità

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

Nota

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

Tabella di mapping Azure DevOps Server pacchetto e versione

Versione pacchetto Azure DevOps Server Versione
17.x.x Azure DevOps Server vNext
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

Pacchetti REST

Pacchetti e descrizione File binari
Microsoft.VisualStudio.Services.Client
Fornisce l'accesso ai servizi della piattaforma condivisa, ad esempio l'organizzazione, il profilo, l'identità, la sicurezza e altro ancora, tramite API REST pubbliche.
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 API REST pubbliche.
Microsoft.TeamFoundation.Build2.WebApi.dll, Microsoft.TeamFoundation.Core.WebApi.dll , , , e così Microsoft.TeamFoundation.WorkItemTracking.Process.WebApi.dll Microsoft.TeamFoundation.SourceControl.WebApi.dll Microsoft.TeamFoundation.TestManagement.WebApi.dll 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 API REST pubbliche.
Microsoft.VisualStudio.Services.ReleaseManagement.WebApi.dll
Microsoft.TeamFoundation.DistributedTask.Common.Contracts
Fornisce i modelli usati per accedere al servizio attività distribuite tramite API REST pubbliche.
Microsoft.TeamFoundation.DistributedTask.Common.Contracts.dll
Microsoft.TeamFoundation.DistributedTask.WebApi
Fornisce l'accesso al servizio attività distribuite tramite API REST pubbliche.
Microsoft.TeamFoundation.DistributedTask.WebApi.dll
Microsoft.VisualStudio.Services.ServiceHooks.WebApi
Fornisce l'accesso al servizio Hook di servizio tramite API REST pubbliche.
Microsoft.VisualStudio.Services.ServiceHooks.WebApi.dll
Microsoft.VisualStudio.Services.Gallery.WebApi
Fornisce l'accesso al servizio Raccolta tramite API REST pubbliche.
Microsoft.VisualStudio.Services.Gallery.WebApi.dll
Microsoft.VisualStudio.Services.Notifications.WebApi
Fornisce l'accesso al servizio notifiche tramite API REST pubbliche.
Microsoft.VisualStudio.Services.Notifications.WebApi.dll
Microsoft.VisualStudio.Services.ExtensionManagement.WebApi
Fornisce l'accesso al servizio di gestione delle estensioni tramite API REST pubbliche.
Microsoft.VisualStudio.Services.ExtensionManagement.WebApi.dll
Microsoft.VisualStudio.Services.MemberEntitlementManagement.WebApi
Fornisce l'accesso al servizio member entitlement management tramite API REST pubbliche.
Microsoft.VisualStudio.Services.MemberEntitlementManagement.WebApi.dll
Microsoft.VisualStudio.Services.ServiceEndpoints.WebApi
Fornisce l'accesso agli endpoint di servizio tramite API REST pubbliche.
Microsoft.VisualStudio.Services.ServiceEndpoints.WebApi.dll
Microsoft.VisualStudio.Services.Search.Client
Fornisce l'accesso al servizio di ricerca tramite 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 Azure DevOps. Con questo pacchetto sono supportati i formati di risultati seguenti: 1. JUnit: pubblicare test da progetti Junit, 2. NUnit: pubblicare test da progetti Nunit, 3. VSTest: pubblicare test da Visual Studio progetti, 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 API REST pubbliche.
Microsoft.VisualStudio.Services.Audit.WebApi.dll

Suggerimento

Se si dispone di un'Windows o di un servizio 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, 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 , , , e così Microsoft.TeamFoundation.Diff.dll Microsoft.TeamFoundation.Git.Client.dll Microsoft.TeamFoundation.SharePointReporting.Integration.dll via.

Installazione

Da un prompt NuGet comando di Gestione pacchetti:

PM> Install-Package Microsoft.TeamFoundationServer.ExtendedClient

Modello da usare

Creare una connessione autenticata Azure DevOps, quindi ottenere un oggetto HttpClient per il servizio che si vuole usare e infine chiamare i metodi su 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";

// Interactively ask the user for credentials, caching them so the user isn't constantly prompted
VssCredentials creds = new VssClientCredentials();
creds.Storage = new VssClientCredentialStorage();

// Connect to Azure DevOps Services
VssConnection connection = new VssConnection(new Uri(c_collectionUri), creds);

// 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 un dialogo interattivo non sono disponibili nella .NET Standard delle librerie client .NET. Quando si usa la .NET Standard delle librerie client .NET, fornire 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;
        }
    }
}

Altri esempi di autenticazione sono disponibili nella pagina degli esempi .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 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 Azure DevOps OM 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 in genere 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 delle versioni NetStandard 2.0 del Azure DevOps OM

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

Il pacchetto Microsoft.TeamFoundationServer.ExtendedClient non dispone del supporto NetStandard

Microsoft.TeamFoundationServer.ExtendedClient attualmente non supporta una versione conforme a NetStandard. Questo pacchetto include il modello a oggetti SOAP meno recente, che è stato sostituito dal modello a oggetti REST più recente. A questo punto, non si investe più nel modello a oggetti SOAP meno recente e non si prevede di crearne una versione NetStandard.