.NET-Clientbibliotheken

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

Clientbibliotheken sind für .NET-Entwickler verfügbar, die Windows-Apps und -Dienste erstellen, die in Azure DevOps integriert sind. Clientbibliotheken sind in die Nachverfolgung von Arbeitsaufgaben, die Versionsverwaltung, den Build und andere Dienste integriert. Diese Pakete ersetzen das herkömmliche TFS-Client-OM-Installationsprogramm und machen es einfach, die bibliotheken zu erwerben und neu zu verteilen, die von Ihrer App oder Ihrem Dienst benötigt werden.

Tipp

Suchen Sie die entsprechende .NET-Clientklasse und API-Methode mithilfe der .NET-Clientbibliotheksbeispiele und der Azure DevOps-API-Referenz.

Abhängigkeitsdiagramm

Das Abhängigkeitsdiagramm zeigt die Beziehung zwischen Services.Client, Services.InteractiveClient und TeamFoundationServer.Client.

Features

  • Herunterladbar aus NuGet.org und einfach in Ihre Visual Studio-Projekte
  • Bibliotheken werden für die Umverteilung in Ihren Apps und Diensten lizenziert (Anzeigen der Lizenz)
  • Zugreifen auf herkömmliche Clientobjektmodell-APIs und REST-APIs

Hinweis

REST-basierte Clients funktionieren nur mit Azure DevOps und TFS 2015 oder höher. Weitere Informationen zum Erweitern und Integrieren in Azure DevOps mithilfe der Clientbibliotheken finden Sie unter Erweitern von Team Foundation.

Paket- und Azure DevOps-Versionszuordnungstabelle

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

Die neuesten Vorschauversionen finden Sie im NuGet-Paketkatalog.

REST-Pakete

Pakete und Beschreibung Binärdateien
Microsoft.VisualStudio.Services.Client
Bietet Zugriff auf gemeinsame Plattformdienste über öffentliche REST-APIs wie Organisation, Profil, Identität, Sicherheit und mehr.
Microsoft.VisualStudio.Services.WebApi.dll, Microsoft.VisualStudio.Services.Common.dllMicrosoft.TeamFoundation.Common.dll
Microsoft.TeamFoundationServer.Client
Bietet Zugriff auf die Versionssteuerung, die Nachverfolgung von Arbeitsaufgaben, das Erstellen und vieles mehr über öffentliche REST-APIs.
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, usw.
Microsoft.VisualStudio.Services.InteractiveClient
Unterstützt Anwendungen, die eine interaktive Anmeldung durch einen Benutzer erfordern.
Microsoft.VisualStudio.Services.Client.Interactive.dll
Microsoft.VisualStudio.Services.Release.Client
Bietet Zugriff auf den Releasedienst über öffentliche REST-APIs.
Microsoft.VisualStudio.Services.ReleaseManagement.WebApi.dll
Microsoft.TeamFoundation.DistributedTask.Common.Contracts
Stellt die Modelle bereit, die für den Zugriff auf den verteilten Aufgabendienst über öffentliche REST-APIs verwendet werden.
Microsoft.TeamFoundation.DistributedTask.Common.Contracts.dll
Microsoft.TeamFoundation.DistributedTask.WebApi
Bietet Zugriff auf den verteilten Aufgabendienst über öffentliche REST-APIs.
Microsoft.TeamFoundation.DistributedTask.WebApi.dll
Microsoft.VisualStudio.Services.ServiceHooks.WebApi
Ermöglicht den Zugriff auf den Dienst hooks Service über öffentliche REST-APIs.
Microsoft.VisualStudio.Services.ServiceHooks.WebApi.dll
Microsoft.VisualStudio.Services.Gallery.WebApi
Bietet Zugriff auf den Katalogdienst über öffentliche REST-APIs.
Microsoft.VisualStudio.Services.Gallery.WebApi.dll
Microsoft.VisualStudio.Services.Notifications.WebApi
Bietet Zugriff auf den Benachrichtigungsdienst über öffentliche REST-APIs.
Microsoft.VisualStudio.Services.Notifications.WebApi.dll
Microsoft.VisualStudio.Services.ExtensionManagement.WebApi
Bietet Zugriff auf den Erweiterungsverwaltungsdienst über öffentliche REST-APIs.
Microsoft.VisualStudio.Services.ExtensionManagement.WebApi.dll
Microsoft.VisualStudio.Services.MemberEntitlementManagement.WebApi
Bietet Zugriff auf den Mitgliedsberechtigungsverwaltungsdienst über öffentliche REST-APIs.
Microsoft.VisualStudio.Services.MemberEntitlementManagement.WebApi.dll
Microsoft.VisualStudio.Services.ServiceEndpoints.WebApi
Bietet Zugriff auf die Dienstendpunkte über öffentliche REST-APIs.
Microsoft.VisualStudio.Services.ServiceEndpoints.WebApi.dll
Microsoft.VisualStudio.Services.Search.Client
Bietet Zugriff auf den Suchdienst über öffentliche REST-APIs.
Microsoft.VisualStudio.Services.Search.Shared.WebApi.dll, Microsoft.VisualStudio.Services.Search.WebApi.dll
Microsoft.TeamFoundation.PublishTestResults
Diese Aufgabe kann verwendet werden, um Testergebnisse zu veröffentlichen und Testanlagen in Azure DevOps hochzuladen. Die folgenden Ergebnisformate werden mit diesem Paket unterstützt: 1. JUnit - veröffentlichen Tests von Junit Projekten, 2. NUnit- veröffentlichen Tests von Nunit-Projekten, 3. VSTest- Veröffentlichen von Tests aus Visual Studio-Projekten, 4. Xunit- Veröffentlichen von Tests aus Xunit-Projekten
Microsoft.TeamFoundation.TestClient.PublishTestResults.dll
Microsoft.VisualStudio.Services.Audit.WebApi
Bietet Zugriff auf den Überwachungsdienst über öffentliche REST-APIs.
Microsoft.VisualStudio.Services.Audit.WebApi.dll
Microsoft.Azure.Pipelines.Policy.Client
Bietet Zugriff auf die Pipelinegenehmigungen, Überprüfungen und Autorisierung über öffentliche REST-APIs.
Microsoft.Azure.Pipelines.Policy.Client.dll

Tipp

Wenn Sie über eine vorhandene Windows-Anwendung oder einen Dienst verfügen, die das TFS-Clientobjektmodell verwendet, verwenden Sie Microsoft.TeamFoundationServer.ExtendedClient.

Soap-Paket

Paket und Beschreibung Binärdateien
Microsoft.TeamFoundationServer.ExtendedClient
Arbeiten mit und Verwalten von Versionssteuerung, Arbeitsaufgaben und Build sowie anderen Ressourcen aus Ihrer Clientanwendung. Dieses Paket unterstützt kein Net Standard Client OM. Verwenden Sie dieses Paket nur, wenn unsere REST-APIs die benötigten Funktionen nicht bieten (z. B. Erstellen von Arbeitsbereichen 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, usw.

Installieren

Installieren von einer NuGet-Paket-Manager-Eingabeaufforderung:

PM> Install-Package Microsoft.TeamFoundationServer.ExtendedClient

Verbinden

Um eine authentifizierte Verbindung mit Azure DevOps zu erstellen, rufen Sie einen HttpClient für den Dienst ab, mit dem Sie arbeiten möchten, und rufen Sie dann Methoden für diesen Dienst auf.

Siehe folgende Beispiele:

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

Authentifizierungspfade, die ein interaktives Dialogfeld erzeugen, sind in der .NET Standard-Version der .NET-Clientbibliotheken nicht verfügbar. Wenn Sie die .NET Standard-Version verwenden, geben Sie Ihre Anmeldeinformationen expliziter für die Authentifizierung an, z. B. im folgenden Beispiel.

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

Weitere Authentifizierungsbeispiele finden Sie unter .NET-Beispiele.

Verweis

Weitere Informationen und aktuelle Referenzdokumentation finden Sie im .NET-API-Browser.

Beispiele

Schauen Sie sich Beispiele auf unserer .NET-Beispielseite oder direkt auf unserem .NET GitHub Repo an.

Weitere Informationen zu NuGet-Paketen finden Sie unter Microsoft.VisualStudio.Services.Client.

Bekannte Probleme

Das Dialogfeld "Interaktive Authentifizierung" wird nicht angezeigt, wenn Sie das Azure DevOps-OM in einem Single Threaded Apartment (STA) verwenden.

Das Dialogfeld für die interaktive Authentifizierung wird nicht in Fällen angezeigt, in denen Ihr Code aus einem Single Threaded Apartment (STA) ausgeführt wird. Dieses Problem kann häufig von WPF-Anwendungen auftreten. Um dieses Problem zu umgehen, können Sie die Initialisierungsmethode so ändern, dass sie asynchron ist und die Authentifizierung anfordert, wie im folgenden Beispiel gezeigt.

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

    ...

}

Verwenden von NetStandard 2.0-Versionen des Azure DevOps-OM

Für Version 16.143.1 unserer NuGet-Pakete unterstützen wir NetStandard 2.0. Diese Pakete korrelieren mit Azure DevOps Server 2019 RTW und sind vollständig mit Azure DevOps kompatibel.

Microsoft.TeamFoundationServer.ExtendedClient-Paket hat keine NetStandard-Unterstützung

Der Microsoft.TeamFoundationServer.ExtendedClient unterstützt keine netStandard-kompatible Version.

Wichtig

Dieses Paket enthält unser älteres SOAP-Objektmodell, das wir durch unser neueres REST-Objektmodell ersetzt haben. Wir investieren nicht mehr in das ältere SOAP-Objektmodell und haben keine Pläne, eine NetStandard-Version davon zu erstellen.