Pustaka klien .NET

Layanan Azure DevOps | Azure DevOps Server 2022 - Azure DevOps Server 2019

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 menggantikan alat penginstal OM Klien TFS tradisional dan memudahkan untuk memperoleh dan mendistribusikan ulang pustaka yang diperlukan oleh aplikasi atau layanan Anda.

Tip

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

  • Dapat diunduh dari NuGet.org dan mudah diimpor ke proyek Visual Studio Anda
  • Pustaka dilisensikan untuk didistribusikan ulang di aplikasi dan layanan Anda (lihat lisensi)
  • Mengakses API model objek klien tradisional dan REST API

Catatan

Klien berbasis REST hanya bekerja dengan Azure DevOps dan TFS 2015 atau yang lebih baru. Untuk informasi selengkapnya tentang memperluas dan mengintegrasikan dengan Azure DevOps menggunakan pustaka klien, lihat Memperluas Team Foundation.

Tabel pemetaan versi Paket dan Azure DevOps

Versi paket Versi 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
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

Untuk versi pratinjau terbaru, lihat galeri paket NuGet.

Paket REST

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.dllMicrosoft.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.SourceControl.WebApi.dllMicrosoft.TeamFoundation.WorkItemTracking.Process.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 tes 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

Tip

Jika Anda memiliki aplikasi atau layanan Windows yang sudah ada yang menggunakan Model Objek Klien TFS, gunakan Microsoft.TeamFoundationServer.ExtendedClient.

Paket sabun

Paket dan deskripsi Binari
Microsoft.TeamFoundationServer.ExtendedClient
Bekerja dengan dan mengelola kontrol versi, item kerja, dan build, serta 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.Git.Client.dllMicrosoft.TeamFoundation.Diff.dll, Microsoft.TeamFoundation.SharePointReporting.Integration.dll, dan sebagainya.

Instal

Instal dari prompt perintah manajer paket NuGet:

PM> Install-Package Microsoft.TeamFoundationServer.ExtendedClient

Sambungkan

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

Jalur autentikasi yang menghasilkan dialog interaktif tidak tersedia di versi .NET Standard dari 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 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;
        }
    }
}

Untuk sampel autentikasi lainnya, lihat Sampel .NET.

Referensi

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

Sampel

Lihat sampel di Halaman Sampel .NET kami atau langsung di Repositori GitHub .NET kami.

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

Masalah umum

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

Dialog autentikasi interaktif tidak muncul jika kode Anda berjalan dari Apartemen Berulir Tunggal (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);
    await vssConnection.ConnectAsync();

    ...

}

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 2019 RTW 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.