.NET-klientbibliotek

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

Klientbibliotek är tillgängliga för .NET-utvecklare som skapar Windows-appar och -tjänster som integreras med Azure DevOps. Klientbibliotek integreras med spårning av arbetsobjekt, versionskontroll, bygge och andra tjänster. Dessa paket ersätter det traditionella OM-installationsprogrammet för TFS-klienten och gör det enkelt att hämta och omdistribuera de bibliotek som behövs av din app eller tjänst.

Dricks

Hitta motsvarande .NET-klientklass och API-metod med hjälp av .NET-klientbiblioteksexempel och Azure DevOps API-referens.

Beroendediagram

Beroendediagram visar relationen mellan Services.Client, Services.InteractiveClient och TeamFoundationServer.Client.

Funktioner

  • Nedladdningsbar från NuGet.org och enkelt att importera till dina Visual Studio-projekt
  • Bibliotek är licensierade för omdistribution i dina appar och tjänster (visa licensen)
  • Åtkomst till både API:er för traditionell klientobjektmodell och REST-API:er

Kommentar

REST-baserade klienter fungerar bara med Azure DevOps och TFS 2015 eller senare. Mer information om hur du utökar och integrerar med Azure DevOps med hjälp av klientbiblioteken finns i Utöka Team Foundation.

Paket- och Azure DevOps-tabell för versionsmappning

Paketversion Azure DevOps-version
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

De senaste förhandsversionerna finns i NuGet-paketgalleriet.

REST-paket

Paket och beskrivning Binärfiler
Microsoft.VisualStudio.Services.Client
Ger åtkomst till delade plattformstjänster via offentliga REST-API:er, till exempel organisation, profil, identitet, säkerhet med mera.
Microsoft.VisualStudio.Services.WebApi.dll, , Microsoft.VisualStudio.Services.Common.dllMicrosoft.TeamFoundation.Common.dll
Microsoft.TeamFoundationServer.Client
Ger åtkomst till versionskontroll, spårning av arbetsobjekt, bygge med mera via offentliga REST-API:er.
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.dlloch så vidare.
Microsoft.VisualStudio.Services.InteractiveClient
Stöder program som kräver interaktiv inloggning av en användare.
Microsoft.VisualStudio.Services.Client.Interactive.dll
Microsoft.VisualStudio.Services.Release.Client
Ger åtkomst till versionstjänsten via offentliga REST-API:er.
Microsoft.VisualStudio.Services.ReleaseManagement.WebApi.dll
Microsoft.TeamFoundation.DistributedTask.Common.Contracts
Tillhandahåller de modeller som används för att komma åt den distribuerade uppgiftstjänsten via offentliga REST-API:er.
Microsoft.TeamFoundation.DistributedTask.Common.Contracts.dll
Microsoft.TeamFoundation.DistributedTask.WebApi
Ger åtkomst till den distribuerade uppgiftstjänsten via offentliga REST-API:er.
Microsoft.TeamFoundation.DistributedTask.WebApi.dll
Microsoft.VisualStudio.Services.ServiceHooks.WebApi
Ger åtkomst till Service Hooks Service via offentliga REST-API:er.
Microsoft.VisualStudio.Services.ServiceHooks.WebApi.dll
Microsoft.VisualStudio.Services.Gallery.WebApi
Ger åtkomst till galleritjänsten via offentliga REST-API:er.
Microsoft.VisualStudio.Services.Gallery.WebApi.dll
Microsoft.VisualStudio.Services.Notifications.WebApi
Ger åtkomst till meddelandetjänsten via offentliga REST-API:er.
Microsoft.VisualStudio.Services.Notifications.WebApi.dll
Microsoft.VisualStudio.Services.ExtensionManagement.WebApi
Ger åtkomst till tilläggshanteringstjänsten via offentliga REST-API:er.
Microsoft.VisualStudio.Services.ExtensionManagement.WebApi.dll
Microsoft.VisualStudio.Services.MemberEntitlementManagement.WebApi
Ger åtkomst till medlemstjänsten för berättigandehantering via offentliga REST-API:er.
Microsoft.VisualStudio.Services.MemberEntitlementManagement.WebApi.dll
Microsoft.VisualStudio.Services.ServiceEndpoints.WebApi
Ger åtkomst till tjänstslutpunkter via offentliga REST-API:er.
Microsoft.VisualStudio.Services.ServiceEndpoints.WebApi.dll
Microsoft.VisualStudio.Services.Search.Client
Ger åtkomst till söktjänsten via offentliga REST-API:er.
Microsoft.VisualStudio.Services.Search.Shared.WebApi.dll, Microsoft.VisualStudio.Services.Search.WebApi.dll
Microsoft.TeamFoundation.PublishTestResults
Den här uppgiften kan användas för att publicera testresultat och ladda upp testbilagor i Azure DevOps. Följande resultatformat stöds med det här paketet: 1. JUnit – publicera tester från Junit-projekt, 2. NUnit – publicera tester från Nunit-projekt, 3. VSTest – publicera tester från Visual Studio-projekt, 4. Xunit – publicera tester från Xunit-projekt
Microsoft.TeamFoundation.TestClient.PublishTestResults.dll
Microsoft.VisualStudio.Services.Audit.WebApi
Ger åtkomst till granskningstjänsten via offentliga REST-API:er.
Microsoft.VisualStudio.Services.Audit.WebApi.dll
Microsoft.Azure.Pipelines.Policy.Client
Ger åtkomst till pipelinegodkännanden, kontroller och auktorisering via offentliga REST-API:er.
Microsoft.Azure.Pipelines.Policy.Client.dll

Dricks

Om du har ett befintligt Windows-program eller en befintlig tjänst som använder TFS-klientobjektmodellen använder du Microsoft.TeamFoundationServer.ExtendedClient.

Soap-paket

Paket och beskrivning Binärfiler
Microsoft.TeamFoundationServer.ExtendedClient
Arbeta med och hantera versionskontroll, arbetsobjekt och bygg och andra resurser från klientprogrammet. Det här paketet stöder inte Net Standard Client OM. Använd bara det här paketet när våra REST-API:er inte erbjuder de funktioner du behöver (till exempel när du skapar arbetsytor i TFVC)
Microsoft.TeamFoundation.Build.Client.dll, Microsoft.TeamFoundation.DeleteTeamProject.dll, Microsoft.TeamFoundation.Diff.dll, Microsoft.TeamFoundation.Git.Client.dll, , Microsoft.TeamFoundation.SharePointReporting.Integration.dlloch så vidare.

Installera

Installera från en Kommandotolk för NuGet-pakethanteraren:

PM> Install-Package Microsoft.TeamFoundationServer.ExtendedClient

Anslut

Om du vill skapa en autentiserad anslutning till Azure DevOps hämtar du en HttpClient för den tjänst som du vill arbeta med och anropar sedan metoder mot den tjänsten.

Se följande exempel:

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

Autentiseringssökvägar som skapar en interaktiv dialogruta är inte tillgängliga i .NET Standard-versionen av .NET-klientbiblioteken. När du använder .NET Standard-versionen anger du dina autentiseringsuppgifter mer explicit för att autentisera, som i följande exempel.

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

Fler autentiseringsexempel finns i .NET-exempel.

Referens

Mer information och aktuell referensdokumentation finns i .NET API-webbläsaren.

Exempel

Kolla in exempel på vår .NET-exempelsida eller direkt på vår .NET GitHub-lagringsplats.

Mer information om NuGet-paket finns i Microsoft.VisualStudio.Services.Client.

Kända problem

Dialogrutan Interaktiv autentisering visas inte när du använder Azure DevOps OM i en enskild trådad lägenhet (STA)

Dialogrutan för interaktiv autentisering visas inte i fall där koden körs från en enskild trådad lägenhet (STA). Det här problemet kan ofta uppstå från WPF-program . För att undvika det här problemet kan du ändra initieringsmetoden så att den är asynkron och begär autentisering som i följande exempel.

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

    ...

}

Använda NetStandard 2.0-versioner av Azure DevOps OM

För version 16.143.1 av våra NuGet-paket stöder vi NetStandard 2.0. Dessa paket korrelerar med Azure DevOps Server 2019 RTW och är helt kompatibla med Azure DevOps.

Microsoft.TeamFoundationServer.ExtendedClient-paketet har inte NetStandard-stöd

Microsoft.TeamFoundationServer.ExtendedClient stöder inte en NetStandard-kompatibel version.

Viktigt!

Det här paketet innehåller vår äldre SOAP-objektmodell, som vi ersatte med vår nyare REST-objektmodell. Vi investerar inte längre i den äldre SOAP-objektmodellen och har inga planer på att skapa en NetStandard-version av den.