perpustakaan klien .NET

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

Pustaka klien tersedia untuk pengembang .NET yang membangun aplikasi dan layanan Windows yang terintegrasi dengan Azure DevOps. Pustaka klien terintegrasi dengan pelacakan item kerja, kontrol versi, build, dan layanan lainnya. Paket ini memudahkan untuk memperoleh dan mendistribusikan ulang pustaka yang diperlukan oleh aplikasi atau layanan Anda.

Nasihat

Temukan kelas klien .NET dan metode API yang sesuai, menggunakan Sampel Pustaka Klien .NET dan Referensi API Azure DevOps.

Diagram dependensi

diagram Dependensi menunjukkan hubungan antara Services.Client, Services.InteractiveClient, dan TeamFoundationServer.Client.

Fitur Pustaka Klien .NET

Pustaka klien .NET untuk Azure DevOps menawarkan beberapa fitur utama yang memudahkan integrasi dengan layanan dalam Azure DevOps dari aplikasi dan layanan Windows Anda:

  • Dapat diunduh dari NuGet.org: Dengan mudah mengimpor pustaka ke proyek Visual Studio Anda dengan mengunduhnya dari NuGet.org.
  • Berlisensi untuk redistribusi: Perpustakaan perangkat lunak ini berlisensi untuk redistribusi dalam aplikasi dan layanan Anda. Anda dapat melihat lisensi untuk detail lebih lanjut.
  • Akses ke API: Mendapatkan akses ke API model objek klien tradisional dan API REST untuk berinteraksi dengan Azure DevOps secara terprogram.
  • Dukungan tantangan klaim: Mulai versi 20.259.0, pustaka klien .NET sekarang dapat mengembalikan token dengan tantangan klaim yang dapat digunakan untuk menangani permintaan otentikasi ulang dengan baik setelah peristiwa perusahaan penting (misalnya: reset kata sandi, penghapusan akun, dll.) sebagai bagian dari dukungan kami untuk Evaluasi Akses Berkelanjutan. Dukungan Python dan Go akan tersedia pada paruh kedua tahun 2025.

Tabel pemetaan versi paket dan Azure DevOps

Tabel berikut memetakan versi paket pustaka klien .NET ke versi Azure DevOps Server yang sesuai. Gunakan tabel ini untuk menentukan versi paket mana yang sesuai dengan versi Azure DevOps Anda.

Versi paket versi Azure DevOps
16.205.x versions >= Azure DevOps Server 2022
16.170.x versions >= Azure DevOps Server 2020

Untuk versi pratinjau terbaru, lihat galeri paket NuGet .

Paket REST

Tabel berikut mencantumkan pustaka klien .NET yang tersedia untuk mengakses berbagai layanan melalui REST API publik. Paket ini dapat diunduh dari NuGet.org dan menyediakan biner yang diperlukan untuk diintegrasikan dengan Azure DevOps.

Paket dan deskripsi Binari
Microsoft.VisualStudio.Services.Client
Menyediakan akses ke layanan platform bersama melalui REST API publik, seperti organisasi, profil, identitas, keamanan, dan lainnya.
Microsoft.VisualStudio.Services.WebApi.dll, Microsoft.VisualStudio.Services.Common.dll, Microsoft.TeamFoundation.Common.dll
Microsoft.TeamFoundationServer.Client
Menyediakan akses ke kontrol versi, pelacakan item kerja, build, dan lainnya melalui REST API publik.
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, dan sebagainya.
Microsoft.VisualStudio.Services.InteractiveClient
Mendukung aplikasi yang memerlukan masuk interaktif oleh pengguna.
Microsoft.VisualStudio.Services.Client.Interactive.dll
Microsoft.VisualStudio.Services.Release.Client
Menyediakan akses ke Layanan Rilis melalui REST API publik.
Microsoft.VisualStudio.Services.ReleaseManagement.WebApi.dll
Microsoft.TeamFoundation.DistributedTask.Common.Contracts
Menyediakan model yang digunakan untuk mengakses Layanan Tugas Terdistribusi melalui REST API publik.
Microsoft.TeamFoundation.DistributedTask.Common.Contracts.dll
Microsoft.TeamFoundation.DistributedTask.WebApi
Menyediakan akses ke Layanan Tugas Terdistribusi melalui REST API publik.
Microsoft.TeamFoundation.DistributedTask.WebApi.dll
Microsoft.VisualStudio.Services.ServiceHooks.WebApi
Menyediakan akses ke Service Hooks Service melalui REST API publik.
Microsoft.VisualStudio.Services.ServiceHooks.WebApi.dll
Microsoft.VisualStudio.Services.Gallery.WebApi
Menyediakan akses ke Gallery Service melalui REST API publik.
Microsoft.VisualStudio.Services.Gallery.WebApi.dll
Microsoft.VisualStudio.Services.Notifications.WebApi
Menyediakan akses ke Layanan Pemberitahuan melalui REST API publik.
Microsoft.VisualStudio.Services.Notifications.WebApi.dll
Microsoft.VisualStudio.Services.ExtensionManagement.WebApi
Menyediakan akses ke Layanan Manajemen Ekstensi melalui REST API publik.
Microsoft.VisualStudio.Services.ExtensionManagement.WebApi.dll
Microsoft.VisualStudio.Services.MemberEntitlementManagement.WebApi
Menyediakan akses ke Layanan Pengelolaan Pemberian Hak Anggota melalui REST API publik.
Microsoft.VisualStudio.Services.MemberEntitlementManagement.WebApi.dll
Microsoft.VisualStudio.Services.ServiceEndpoints.WebApi
Menyediakan akses ke Titik Akhir Layanan melalui REST API publik.
Microsoft.VisualStudio.Services.ServiceEndpoints.WebApi.dll
Microsoft.VisualStudio.Services.Search.Client
Menyediakan akses ke Layanan Pencarian melalui REST API publik.
Microsoft.VisualStudio.Services.Search.Shared.WebApi.dll, Microsoft.VisualStudio.Services.Search.WebApi.dll
Microsoft.TeamFoundation.PublishTestResults
Tugas ini dapat digunakan untuk menerbitkan hasil pengujian dan mengunggah lampiran pengujian di Azure DevOps. Format hasil berikut didukung dengan paket ini: 1. JUnit - menerbitkan tes dari proyek JUnit, 2. NUnit - menerbitkan pengujian dari proyek NUnit, 3. VSTest - menerbitkan pengujian dari proyek Visual Studio, 4. Xunit - menerbitkan tes dari proyek Xunit.
Microsoft.TeamFoundation.TestClient.PublishTestResults.dll
Microsoft.VisualStudio.Services.Audit.WebApi
Menyediakan akses ke Layanan Audit melalui REST API publik.
Microsoft.VisualStudio.Services.Audit.WebApi.dll
Microsoft. Azure. Pipelines.Policy.Client
Menyediakan akses ke persetujuan, pemeriksaan, dan otorisasi alur melalui REST API publik.
Microsoft.Azure.Pipelines.Policy.Client.dll

Nasihat

Legacy SOAP API: Jika Anda memiliki aplikasi Windows yang sudah ada yang menggunakan Model Objek Klien TFS, gunakan Microsoft.TeamFoundationServer.ExtendedClient untuk API berbasis SOAP. Paket ini hanya direkomendasikan ketika REST API tidak menyediakan fungsionalitas tertentu yang Anda butuhkan (seperti pembuatan ruang kerja TFVC). Paket ini tidak mendukung .NET Standard dan Microsoft tidak lagi berinvestasi dalam API berbasis SOAP.

Paket sabun

Tabel berikut mencantumkan pustaka klien .NET yang tersedia untuk mengakses berbagai layanan melalui API SOAP. Paket ini dapat diunduh dari NuGet.org dan menyediakan biner yang diperlukan untuk diintegrasikan dengan Azure DevOps. Hanya gunakan paket ini saat REST API tidak menawarkan fungsionalitas yang Anda butuhkan, misalnya, membuat ruang kerja di TFVC.

Paket dan deskripsi Biner
Microsoft.TeamFoundationServer.ExtendedClient
Bekerja dengan dan mengelola kontrol versi, item kerja, build, dan sumber daya lainnya dari aplikasi klien Anda. Paket ini tidak mendukung Net Standard Client OM. Hanya gunakan paket ini ketika REST API kami tidak menawarkan fungsionalitas yang Anda butuhkan (misalnya, membuat ruang kerja di TFVC).
Microsoft.TeamFoundation.Build.Client.dll, Microsoft.TeamFoundation.DeleteTeamProject.dll, Microsoft.TeamFoundation.Diff.dll, Microsoft.TeamFoundation.Git.Client.dll, Microsoft.TeamFoundation.SharePointReporting.Integration.dll, dan sebagainya.

Instalasi

Instalasi dari prompt perintah NuGet package manager:

PM> Install-Package Microsoft.TeamFoundationServer.ExtendedClient

Sambung

Untuk membuat koneksi terautentikasi ke Azure DevOps, dapatkan HttpClient untuk layanan yang ingin Anda kerjakan, lalu panggil metode terhadap layanan tersebut.

Lihat contoh berikut:

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

Jalur autentikasi yang menghasilkan dialog interaktif tidak tersedia di versi Standar .NET pustaka klien .NET. Saat Anda menggunakan versi .NET Standard, berikan kredensial Anda secara lebih eksplisit untuk mengautentikasi, seperti dalam contoh berikut.

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

Nasihat

Microsoft Entra ID autentikasi: Contoh sebelumnya menggunakan token Microsoft Entra ID untuk autentikasi. Untuk informasi lebih lanjut, lihat Autentikasi ke Azure DevOps menggunakan Microsoft Entra.

Untuk sampel autentikasi lainnya, lihat Sampel .NET.

Referensi

Untuk dokumentasi referensi terbaru dan informasi selengkapnya, lihat browser .NET API.

Contoh-contoh

Lihat sampel di Halaman Sampel .NET kami.

Untuk informasi selengkapnya tentang paket NuGet, lihat Microsoft.VisualStudio.Services.Client.

Masalah yang diketahui

Dialog autentikasi interaktif tidak muncul saat menggunakan Azure DevOps OM di Apartemen Berulir Tunggal (STA)

Dialog autentikasi interaktif tidak muncul jika kode Anda berjalan dari Single Threaded Apartment (STA). Masalah ini biasanya dapat terjadi dari aplikasi WPF. Untuk mengatasi masalah ini, Anda dapat mengubah metode inisialisasi menjadi asinkron dan meminta autentikasi seperti dalam contoh berikut.

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

    ...

}

Menggunakan versi NetStandard 2.0 dari Azure DevOps OM

Untuk versi 16.143.1 dari paket NuGet kami, kami mendukung NetStandard 2.0. Paket ini berkorelasi dengan Azure DevOps Server dan sepenuhnya kompatibel dengan Azure DevOps.

Paket Microsoft.TeamFoundationServer.ExtendedClient tidak memiliki dukungan NetStandard

Microsoft.TeamFoundationServer.ExtendedClient tidak mendukung versi yang sesuai dengan NetStandard.

Penting

Paket ini mencakup model objek SOAP kami yang lebih lama, yang kami ganti dengan model objek REST kami yang lebih baru. Kami tidak lagi berinvestasi dalam model objek SOAP yang lebih lama, dan tidak memiliki rencana untuk membuat versi NetStandard darinya.