Delen via


.NET-clientbibliotheken

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022 | Azure DevOps Server 2020

Clientbibliotheken zijn beschikbaar voor .NET-ontwikkelaars die Windows-apps en -services bouwen die kunnen worden geïntegreerd met Azure DevOps. Clientbibliotheken kunnen worden geïntegreerd met het bijhouden van werkitems, versiebeheer, build en andere services. Met deze pakketten kunt u eenvoudig de bibliotheken verkrijgen en herdistribueren die nodig zijn voor uw app of service.

Hint

Zoek de bijbehorende .NET-clientklasse en API-methode met behulp van .NET-clientbibliotheekvoorbeelden en Azure DevOps API Reference.

Afhankelijkheidsdiagram

Afhankelijkheidsdiagram toont de relatie tussen Services.Client, Services.InteractiveClient en TeamFoundationServer.Client.

Functies van .NET-clientbibliotheken

De .NET-clientbibliotheken voor Azure DevOps bieden verschillende belangrijke functies waarmee u eenvoudig kunt integreren met services in Azure DevOps vanuit uw Windows-toepassingen en -services:

  • Downloadbaar vanuit NuGet.org: importeer de bibliotheken eenvoudig in uw Visual Studio-projecten door ze te downloaden van NuGet.org.
  • gelicentieerd voor herdistributie: de bibliotheken zijn gelicentieerd voor herdistributie in uw apps en services. U kunt de licentie bekijken voor meer informatie.
  • Toegang tot API's: krijg toegang tot zowel traditionele API's voor clientobjectmodellen als REST API's om programmatisch met Azure DevOps te communiceren.
  • Ondersteuning voor claims: vanaf versie 20.259.0 kunnen .NET-clientbibliotheken nu tokens retourneren met claimsuitdagingen die kunnen worden gebruikt om aanvragen voor opnieuw verifiëren correct af te handelen na kritieke bedrijfsgebeurtenissen (bijvoorbeeld het opnieuw instellen van wachtwoorden, accountverwijderingen, enzovoort) als onderdeel van onze ondersteuning voor continue toegangsevaluatie. Ondersteuning voor Python en Go zal beschikbaar komen in de tweede helft van 2025.

Tabel voor versietoewijzing van pakket en Azure DevOps

De volgende tabel wijst de pakketversies van de .NET-clientbibliotheken toe aan de bijbehorende versies van Azure DevOps Server. Gebruik deze tabel om te bepalen welke pakketversie overeenkomt met uw Azure DevOps-versie.

Versie van het pakket Azure DevOps-versie
16.205.x versions >= Azure DevOps Server 2022
16.170.x versions >= Azure DevOps Server 2020

Voor de nieuwste preview-versies, zie de NuGet-pakketten galerij.

REST-pakketten

De volgende tabel bevat de .NET-clientbibliotheken die beschikbaar zijn voor toegang tot verschillende services via openbare REST API's. Deze pakketten kunnen worden gedownload van NuGet.org en bieden de benodigde binaire bestanden om te integreren met Azure DevOps.

Pakketten en beschrijving Binaire bestanden
Microsoft.VisualStudio.Services.Client
Biedt toegang tot gedeelde platformservices via openbare REST API's, zoals organisatie, profiel, identiteit, beveiliging en meer.
Microsoft.VisualStudio.Services.WebApi.dll, , Microsoft.VisualStudio.Services.Common.dllMicrosoft.TeamFoundation.Common.dll
Microsoft.TeamFoundationServer.Client
Biedt toegang tot versiebeheer, tracering van werkitems, build en meer via openbare REST API's.
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.dllenzovoort.
Microsoft.VisualStudio.Services.InteractiveClient
Ondersteunt toepassingen waarvoor interactieve aanmelding door een gebruiker is vereist.
Microsoft.VisualStudio.Services.Client.Interactive.dll
Microsoft.VisualStudio.Services.Release.Client
Biedt toegang tot de Release-service via openbare REST API's.
Microsoft.VisualStudio.Services.ReleaseManagement.WebApi.dll
Microsoft.TeamFoundation.DistributedTask.Common.Contracts
Biedt de modellen die worden gebruikt voor toegang tot de gedistribueerde taakservice via openbare REST API's.
Microsoft.TeamFoundation.DistributedTask.Common.Contracts.dll
Microsoft.TeamFoundation.DistributedTask.WebApi
Biedt toegang tot de gedistribueerde taakservice via openbare REST API's.
Microsoft.TeamFoundation.DistributedTask.WebApi.dll
Microsoft.VisualStudio.Services.ServiceHooks.WebApi
Biedt toegang tot de Service Hooks Service via openbare REST API's.
Microsoft.VisualStudio.Services.ServiceHooks.WebApi.dll
Microsoft.VisualStudio.Services.Gallery.WebApi
Biedt toegang tot de Gallery-service via openbare REST API's.
Microsoft.VisualStudio.Services.Gallery.WebApi.dll
Microsoft.VisualStudio.Services.Notifications.WebApi
Biedt toegang tot de Notification Service via openbare REST API's.
Microsoft.VisualStudio.Services.Notifications.WebApi.dll
Microsoft.VisualStudio.Services.ExtensionManagement.WebApi
Biedt toegang tot de Extension Management-service via openbare REST API's.
Microsoft.VisualStudio.Services.ExtensionManagement.WebApi.dll
Microsoft.VisualStudio.Services.MemberEntitlementManagement.WebApi
Biedt toegang tot de Member Entitlement Management-service via openbare REST API's.
Microsoft.VisualStudio.Services.MemberEntitlementManagement.WebApi.dll
Microsoft.VisualStudio.Services.ServiceEndpoints.WebApi
Biedt toegang tot de service-eindpunten via openbare REST API's.
Microsoft.VisualStudio.Services.ServiceEndpoints.WebApi.dll
Microsoft.VisualStudio.Services.Search.Client
Biedt toegang tot de zoekservice via openbare REST API's.
Microsoft.VisualStudio.Services.Search.Shared.WebApi.dll, Microsoft.VisualStudio.Services.Search.WebApi.dll
Microsoft.TeamFoundation.PublishTestResults
Deze taak kan worden gebruikt om testresultaten te publiceren en testbijlagen te uploaden in Azure DevOps. De volgende resultatenindelingen worden ondersteund met dit pakket: 1. JUnit : test van JUnit-projecten publiceren, 2. NUnit - test van NUnit-projecten publiceren, 3. VSTest : test van Visual Studio-projecten publiceren, 4. Xunit: test van Xunit-projecten publiceren.
Microsoft.TeamFoundation.TestClient.PublishTestResults.dll
Microsoft.VisualStudio.Services.Audit.WebApi
Biedt toegang tot de auditservice via openbare REST API's.
Microsoft.VisualStudio.Services.Audit.WebApi.dll
Microsoft.Azure.Pipelines.Policy.Client
Biedt toegang tot de pijplijngoedkeuringen, controles en autorisatie via openbare REST API's.
Microsoft.Azure.Pipelines.Policy.Client.dll

Hint

Verouderde SOAP-API's: als u een bestaande Windows-toepassing hebt die gebruikmaakt van het TFS-clientobjectmodel, gebruikt Microsoft.TeamFoundationServer.ExtendedClient u deze voor SOAP-API's. Dit pakket wordt alleen aanbevolen wanneer REST API's niet de specifieke functionaliteit bieden die u nodig hebt (zoals het maken van TFVC-werkruimten). Dit pakket biedt geen ondersteuning voor .NET Standard en Microsoft investeert niet meer in SOAP-API's.

Soap-pakket

De volgende tabel bevat de .NET-clientbibliotheken die beschikbaar zijn voor toegang tot verschillende services via SOAP API's. Deze pakketten kunnen worden gedownload van NuGet.org en bieden de benodigde binaire bestanden om te integreren met Azure DevOps. Gebruik deze pakketten alleen wanneer de REST API's niet de functionaliteit bieden die u nodig hebt, bijvoorbeeld het maken van werkruimten in TFVC.

pakket en beschrijving Binaire Bestanden
Microsoft.TeamFoundationServer.ExtendedClient
Werk vanuit uw clienttoepassing met versiebeheer, werkitems, builds en andere resources, en beheer deze. Dit pakket biedt geen ondersteuning voor Net Standard Client OM. Gebruik dit pakket alleen als onze REST API's niet de functionaliteit bieden die u nodig hebt (bijvoorbeeld het maken van werkruimten in TFVC).
Microsoft.TeamFoundation.Build.Client.dll, Microsoft.TeamFoundation.DeleteTeamProject.dll, Microsoft.TeamFoundation.Diff.dll, Microsoft.TeamFoundation.Git.Client.dll, Microsoft.TeamFoundation.SharePointReporting.Integration.dllenzovoort.

Installeren

Installeren vanaf een Opdrachtprompt voor NuGet Package Manager:

PM> Install-Package Microsoft.TeamFoundationServer.ExtendedClient

Verbinden

Als u een geverifieerde verbinding met Azure DevOps wilt maken, haalt u een HttpClient op voor de service waarmee u wilt werken en roept u vervolgens methoden aan voor die service.

Zie de volgende voorbeelden:

using Microsoft.VisualStudio.Services.Common;
using Microsoft.VisualStudio.Services.Client;
using Microsoft.TeamFoundation.SourceControl.WebApi;
using Microsoft.VisualStudio.Services.WebApi;

const string collectionUri = "https://dev.azure.com/fabrikam";
const string projectName = "MyGreatProject";
const string repoName = "MyRepo";
const string accessToken = "your-microsoft-entra-id-token";

Uri orgUrl = new Uri(collectionUri);

// Connect to Azure DevOps using Microsoft Entra ID token
VssConnection connection = new VssConnection(orgUrl, new VssBasicCredential(string.Empty, accessToken));

// 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(projectName, repoName).Result;
}

Verificatiepaden die een interactief dialoogvenster produceren, zijn niet beschikbaar in de .NET Standard-versie van de .NET-clientbibliotheken. Wanneer u de .NET Standard-versie gebruikt, geeft u uw referenties explicieter op om te verifiëren, zoals in het volgende voorbeeld.

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 accessToken = "your-microsoft-entra-id-token";

        static void Main(string[] args)
        {
            var creds = new VssBasicCredential(string.Empty, accessToken);
            
            // Connect to Azure DevOps Services using Microsoft Entra ID token
            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;
        }
    }
}

Hint

Microsoft Entra ID-verificatie: in de vorige voorbeelden worden Microsoft Entra ID-tokens gebruikt voor verificatie. Zie Verifiëren bij Azure DevOps met behulp van Microsoft Entra voor meer informatie.

Zie .NET-voorbeeldenvoor meer verificatievoorbeelden.

Referentie

Zie de .NET API-browser voor meer informatie en voor up-to-date-verwijzingsdocumentatie.

Voorbeelden

Bekijk voorbeelden op onze pagina met .NET-voorbeelden.

Zie Microsoft.VisualStudio.Services.Clientvoor meer informatie over NuGet-pakketten.

Bekende problemen

Het interactieve verificatiedialoogvenster verschijnt niet wanneer u het Azure DevOps Object Model (OM) gebruikt in een STA (Single Threaded Apartment).

Het interactieve verificatiedialoogvenster wordt niet weergegeven in gevallen waarin uw code wordt uitgevoerd vanuit een Single Threaded Apartment (STA). Dit probleem kan vaak optreden vanuit WPF--toepassingen. Als u dit probleem wilt omzeilen, kunt u uw initialisatiemethode wijzigen in asynchroon en verificatie aanvragen, zoals in het volgende voorbeeld.

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

    ...

}

NetStandard 2.0-versies van azure DevOps OM gebruiken

Voor versie 16.143.1 van onze NuGet-pakketten ondersteunen we NetStandard 2.0. Deze pakketten correleren met Azure DevOps Server en zijn volledig compatibel met Azure DevOps.

Het pakket Microsoft.TeamFoundationServer.ExtendedClient heeft geen ondersteuning voor NetStandard

De Microsoft.TeamFoundationServer.ExtendedClient biedt geen ondersteuning voor een netStandard-compatibele versie.

Belangrijk

Dit pakket bevat ons oudere SOAP-objectmodel, dat we hebben vervangen door ons nieuwere REST-objectmodel. We investeren niet meer in het oudere SOAP-objectmodel en hebben geen plannen om er een NetStandard-versie van te maken.