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
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.dll e 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.dll e 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.