Aracılığıyla paylaş


.NET istemci kitaplıkları

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

İstemci kitaplıkları, Azure DevOps ile tümleşen Windows uygulamaları ve hizmetleri oluşturan .NET geliştiricileri tarafından kullanılabilir. İstemci kitaplıkları iş öğesi izleme, sürüm denetimi, derleme ve diğer hizmetlerle entegre edilir. Bu paketler uygulamanızın veya hizmetinizin ihtiyaç duyduğu kitaplıkları almayı ve yeniden dağıtmayı kolaylaştırır.

Tavsiye

.NET İstemci Kitaplığı Örnekleri ve Azure DevOps API Başvurusukullanarak ilgili .NET istemci sınıfını ve API yöntemini bulun.

Bağımlılık diyagramı

Bağımlılık diyagramı Services.Client, Services.InteractiveClient ve TeamFoundationServer.Client arasındaki ilişkiyi gösterir.

.NET İstemci Kitaplıklarının Özellikleri

Azure DevOps için .NET istemci kitaplıkları, Windows uygulamalarınızdan ve hizmetlerinizden Azure DevOps'taki hizmetlerle tümleştirmeyi kolaylaştıran çeşitli temel özellikler sunar:

  • NuGet.org'den indirilebilir: Kitaplıkları NuGet.org'den indirerek Visual Studio projelerinize kolayca aktarın.
  • Yeniden dağıtım lisansı: Kitaplıklar uygulamalarınızda ve hizmetlerinizde yeniden dağıtım için lisanslandırılır. Daha fazla bilgi için lisans görüntüleyebilirsiniz.
  • API'lere erişim: Azure DevOps ile program aracılığıyla etkileşim kurmak için hem geleneksel istemci nesne modeli API'lerine hem de REST API'lerine erişim elde edin.
  • Talep sınamaları desteği: Sürüm 20.259.0 itibarıyla .NET istemci kitaplıkları artık Sürekli Erişim Değerlendirmesi desteğimizin bir parçası olarak kritik şirket olaylarından sonra (parola sıfırlama, hesap silme vb.) sonra yeniden kimlik doğrulama isteklerini düzgün bir şekilde işlemek için kullanılabilecek talep zorluklarına sahip belirteçler döndürebilir. Python ve Go desteği 2025'in ikinci yarısında gelir.

Paket ve Azure DevOps sürüm eşleme tablosu

Aşağıdaki tabloda .NET istemci kitaplıklarının paket sürümleri Azure DevOps Server'ın ilgili sürümleriyle eşlenmektedir. Hangi paket sürümünün Azure DevOps sürümünüzle ilgili olduğunu belirlemek için bu tabloyu kullanın.

Paket sürümü Azure DevOps sürümü
16.205.x versions >= Azure DevOps Server 2022
16.170. versions >= Azure DevOps Server 2020

En son önizleme sürümleri için NuGet paketleri galerisinebakın.

REST paketleri

Aşağıdaki tabloda, genel REST API'leri aracılığıyla çeşitli hizmetlere erişmek için kullanılabilecek .NET istemci kitaplıkları listelenmektedir. Bu paketler NuGet.org'dan indirilebilir ve Azure DevOps ile tümleştirmek için gerekli ikili dosyaları sağlarlar.

Paketler ve açıklama İkililer
Microsoft.VisualStudio.Services.Client
Kuruluş, profil, kimlik, güvenlik ve daha fazlası gibi genel REST API'leri aracılığıyla paylaşılan platform hizmetlerine erişim sağlar.
Microsoft.VisualStudio.Services.WebApi.dll, Microsoft.VisualStudio.Services.Common.dll, Microsoft.TeamFoundation.Common.dll
Microsoft.TeamFoundationServer.Client
Genel REST API'leri aracılığıyla sürüm denetimine, iş öğesi izlemeye, derlemeye ve daha fazlasına erişim sağlar.
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.dllvb.
Microsoft.VisualStudio.Services.InteractiveClient
Bir kullanıcı tarafından etkileşimli oturum açma gerektiren uygulamaları destekler.
Microsoft.VisualStudio.Services.Client.Interactive.dll
Microsoft.VisualStudio.Services.Release.Client
Genel REST API'leri aracılığıyla Yayın Hizmeti'ne erişim sağlar.
Microsoft.VisualStudio.Services.ReleaseManagement.WebApi.dll
Microsoft.TeamFoundation.DistributedTask.Common.Contracts
Dağıtılmış Görev Hizmeti'ne genel REST API'leri aracılığıyla erişmek için kullanılan modelleri sağlar.
Microsoft.TeamFoundation.DistributedTask.Common.Contracts.dll
Microsoft.TeamFoundation.DistributedTask.WebApi
Dağıtılmış Görev Hizmeti'ne genel REST API'leri aracılığıyla erişim sağlar.
Microsoft.TeamFoundation.DistributedTask.WebApi.dll
Microsoft.VisualStudio.Services.ServiceHooks.WebApi
Genel REST API'leri aracılığıyla Hizmet Kancaları Hizmetine erişim sağlar.
Microsoft.VisualStudio.Services.ServiceHooks.WebApi.dll
Microsoft.VisualStudio.Services.Gallery.WebApi
Genel REST API'leri aracılığıyla Galeri Hizmeti'ne erişim sağlar.
Microsoft.VisualStudio.Services.Gallery.WebApi.dll
Microsoft.VisualStudio.Services.Notifications.WebApi
Bildirim Hizmeti'ne genel REST API'leri aracılığıyla erişim sağlar.
Microsoft.VisualStudio.Services.Notifications.WebApi.dll
Microsoft.VisualStudio.Services.ExtensionManagement.WebApi
Uzantı Yönetimi Hizmeti'ne genel REST API'leri aracılığıyla erişim sağlar.
Microsoft.VisualStudio.Services.ExtensionManagement.WebApi.dll
Microsoft.VisualStudio.Services.MemberEntitlementManagement.WebApi
Genel REST API'leri aracılığıyla Üye Yetkilendirme Yönetim Hizmeti'ne erişim sağlar.
Microsoft.VisualStudio.Services.MemberEntitlementManagement.WebApi.dll
Microsoft.VisualStudio.Services.ServiceEndpoints.WebApi
Genel REST API'leri aracılığıyla Hizmet Uç Noktalarına erişim sağlar.
Microsoft.VisualStudio.Services.ServiceEndpoints.WebApi.dll
Microsoft.VisualStudio.Services.Search.Client
Genel REST API'leri aracılığıyla Arama Hizmeti'ne erişim sağlar.
Microsoft.VisualStudio.Services.Search.Shared.WebApi.dll, Microsoft.VisualStudio.Services.Search.WebApi.dll
Microsoft.TeamFoundation.PublishTestResults
Bu görev, test sonuçlarını yayımlamak ve test eklerini Azure DevOps'a yüklemek için kullanılabilir. Bu pakette aşağıdaki sonuç biçimleri desteklenir: 1. JUnit - JUnit projelerinden testleri yayımlama, 2. NUnit - NUnit projelerinden testleri yayımlama, 3. VSTest - Visual Studio projelerinden testleri yayımlama, 4. Xunit - Xunit projelerinden testleri yayımlayın.
Microsoft.TeamFoundation.TestClient.PublishTestResults.dll
Microsoft.VisualStudio.Services.Audit.WebApi
Genel REST API'leri aracılığıyla Denetim Hizmeti'ne erişim sağlar.
Microsoft.VisualStudio.Services.Audit.WebApi.dll
Microsoft.Azure.Pipelines.Policy.Client
Genel REST API'leri aracılığıyla işlem hattı onaylarına, denetimlerine ve yetkilendirmesine erişim sağlar.
Microsoft.Azure.Pipelines.Policy.Client.dll

Tavsiye

Eski SOAP API'leri: TFS İstemci Nesne Modeli'ni kullanan mevcut bir Windows uygulamanız varsa SOAP tabanlı API'ler için kullanın Microsoft.TeamFoundationServer.ExtendedClient . Bu paket yalnızca REST API'ler ihtiyacınız olan belirli işlevleri (TFVC çalışma alanı oluşturma gibi) sağlamadığında önerilir. Bu paket .NET Standard'ı desteklemez ve Microsoft artık SOAP tabanlı API'lere yatırım yapmıyor.

Sabun paketi

Aşağıdaki tabloda SOAP API'leri aracılığıyla çeşitli hizmetlere erişmek için kullanılabilecek .NET istemci kitaplıkları listelenmektedir. Bu paketler NuGet.org'dan indirilebilir ve Azure DevOps ile tümleştirmek için gerekli ikili dosyaları sağlarlar. Bu paketleri yalnızca REST API'leri ihtiyacınız olan işlevselliği sunmadığında (örneğin, TFVC'de çalışma alanları oluşturma) kullanın.

paket ve açıklama İkililer
Microsoft.TeamFoundationServer.ExtendedClient
İstemci uygulamanızdan sürüm denetimi, iş öğeleri, derleme ve diğer kaynaklarla çalışın ve yönetin. Bu paket Net Standart İstemci OM'sini desteklemez. Bu paketi yalnızca REST API'lerimiz ihtiyacınız olan işlevselliği (örneğin, TFVC'de çalışma alanları oluşturma) sunmadığında kullanın.
Microsoft.TeamFoundation.Build.Client.dll, Microsoft.TeamFoundation.DeleteTeamProject.dll, Microsoft.TeamFoundation.Diff.dll, Microsoft.TeamFoundation.Git.Client.dll, Microsoft.TeamFoundation.SharePointReporting.Integration.dllvb.

Yükleme

NuGet paket yöneticisi komut isteminden yükleyin:

PM> Install-Package Microsoft.TeamFoundationServer.ExtendedClient

Bağlan

Azure DevOps'a kimliği doğrulanmış bir bağlantı oluşturmak için, çalışmak istediğiniz hizmet için bir HttpClient alın ve ardından bu hizmete karşı yöntemleri çağırın.

Aşağıdaki örneklere bakın:

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

Etkileşimli iletişim kutusu oluşturan kimlik doğrulama yolları, .NET istemci kitaplıklarının .NET Standart sürümünde kullanılamaz. .NET Standard sürümünü kullanırken kimlik bilgilerinizi aşağıdaki örnekte olduğu gibi kimlik doğrulaması için daha açık bir şekilde sağlayın.

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

Tavsiye

Microsoft Entra Id kimlik doğrulaması: Önceki örneklerde kimlik doğrulaması için Microsoft Entra ID belirteçleri kullanılır. Daha fazla bilgi için bkz. Microsoft Entra kullanarak Azure DevOps'ta kimlik doğrulaması yapma.

Daha fazla kimlik doğrulama örneği için bkz. .NET Örnekleri .

Referans

Daha fazla bilgi ve up-totarihli referans belgeleri konusunda .NET API tarayıcısınabakın.

Örnekler

.NET Örnekleri Sayfamızdaki örneklere göz atın.

NuGet paketleri hakkında daha fazla bilgi için bkz. Microsoft.VisualStudio.Services.Client .

Bilinen sorunlar

Tek İş Parçacıklı Apartman (STA) modunda Azure DevOps OM kullanılırken etkileşimli kimlik doğrulama iletişim kutusu görünmüyor.

Kodunuzun Tek İş Parçacıklı Daire (STA) tarafından çalıştırıldığı durumlarda etkileşimli kimlik doğrulaması iletişim kutusu görüntülenmez. Bu sorun genellikle WPF uygulamalarından oluşabilir. Bu sorunu geçici olarak çözmek için başlatma yönteminizi zaman uyumsuz olarak değiştirebilir ve aşağıdaki örnekte olduğu gibi kimlik doğrulaması isteyebilirsiniz.

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

    ...

}

Azure DevOps OM'nin NetStandard 2.0 sürümlerini kullanma

NuGet paketlerimizin 16.143.1 sürümü için NetStandard 2.0'ı destekliyoruz. Bu paketler Azure DevOps Server ile ilişkilendirilir ve Azure DevOps ile tamamen uyumludur.

Microsoft.TeamFoundationServer.ExtendedClient paketinin NetStandard desteği yok

Microsoft.TeamFoundationServer.ExtendedClient NetStandard uyumlu sürümü desteklemez.

Önemli

Bu paket, yeni REST nesne modelimizle değiştirdiğimiz eski SOAP nesne modelimizi içerir. Artık eski SOAP nesne modeline yatırım yapmayız ve bunun NetStandard sürümünü oluşturma planlarımız yoktur.