Клиентские библиотеки .NET

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

Клиентские библиотеки доступны разработчикам .NET, создающим приложения и службы Windows, которые интегрируются с Azure DevOps. Клиентские библиотеки интегрируются с отслеживанием рабочих элементов, управлением версиями, сборкой и другими службами. Эти пакеты заменяют традиционный установщик OM клиента TFS и упрощают получение и распространение библиотек, необходимых приложению или службе.

Совет

Найдите соответствующий клиентский класс и метод API .NET, используя примеры клиентской библиотеки .NET и справочник по API Azure DevOps.

Схема зависимостей

Схема зависимостей показывает связь между Services.Client, Services.InteractiveClient и TeamFoundationServer.Client.

Функции

  • Скачиваемый из NuGet.org и легко импортируемый в проекты Visual Studio
  • Библиотеки лицензированы для распространения в приложениях и службах (просмотр лицензии)
  • Доступ как к традиционным API клиентской объектной модели, так и к REST API

Примечание.

Клиенты на основе REST работают только с Azure DevOps и TFS 2015 или более поздней версии. Дополнительные сведения о расширении и интеграции с Azure DevOps с помощью клиентских библиотек см. в разделе "Расширение Team Foundation".

Таблица сопоставления версий пакета и Azure DevOps

Версия пакета Версия 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

Последние предварительные версии см. в коллекции пакетов NuGet.

Пакеты REST

Пакеты и описание Двоичные файлы
Microsoft.VisualStudio.Services.Client
Предоставляет доступ к службам общей платформы через общедоступные ИНТЕРФЕЙСы REST API, такие как организация, профиль, удостоверение, безопасность и многое другое.
Microsoft.VisualStudio.Services.WebApi.dll, , Microsoft.VisualStudio.Services.Common.dllMicrosoft.TeamFoundation.Common.dll
Microsoft.TeamFoundationServer.Client
Предоставляет доступ к управлению версиями, отслеживанию рабочих элементов, сборке и многому другому через общедоступные ИНТЕРФЕЙСы REST API.
Microsoft.TeamFoundation.Build2.WebApi.dll, Microsoft.TeamFoundation.Core.WebApi.dll, , Microsoft.TeamFoundation.SourceControl.WebApi.dllMicrosoft.TeamFoundation.WorkItemTracking.Process.WebApi.dllMicrosoft.TeamFoundation.TestManagement.WebApi.dllи т. д.
Microsoft.VisualStudio.Services.InteractiveClient
Поддерживает приложения, требующие интерактивного входа пользователем.
Microsoft.VisualStudio.Services.Client.Interactive.dll
Microsoft.VisualStudio.Services.Release.Client
Предоставляет доступ к службе выпуска через общедоступные ИНТЕРФЕЙСы REST API.
Microsoft.VisualStudio.Services.ReleaseManagement.WebApi.dll
Microsoft.TeamFoundation.DistributedTask.Common.Contracts
Предоставляет модели, используемые для доступа к распределенной службе задач через общедоступные ИНТЕРФЕЙСы REST API.
Microsoft.TeamFoundation.DistributedTask.Common.Contracts.dll
Microsoft.TeamFoundation.DistributedTask.WebApi
Предоставляет доступ к распределенной службе задач через общедоступные ИНТЕРФЕЙСы REST API.
Microsoft.TeamFoundation.DistributedTask.WebApi.dll
Microsoft.VisualStudio.Services.ServiceHooks.WebApi
Предоставляет доступ к службе перехватчиков служб через общедоступные ИНТЕРФЕЙСы REST API.
Microsoft.VisualStudio.Services.ServiceHooks.WebApi.dll
Microsoft.VisualStudio.Services.Gallery.WebApi
Предоставляет доступ к службе коллекции через общедоступные ИНТЕРФЕЙСы REST API.
Microsoft.VisualStudio.Services.Gallery.WebApi.dll
Microsoft.VisualStudio.Services.Notifications.WebApi
Предоставляет доступ к службе уведомлений через общедоступные ИНТЕРФЕЙСы REST API.
Microsoft.VisualStudio.Services.Notifications.WebApi.dll
Microsoft.VisualStudio.Services.ExtensionManagement.WebApi
Предоставляет доступ к службе управления расширениями через общедоступные ИНТЕРФЕЙСЫ REST API.
Microsoft.VisualStudio.Services.ExtensionManagement.WebApi.dll
Microsoft.VisualStudio.Services.MemberEntitlementManagement.WebApi
Предоставляет доступ к службе управления правами участников через общедоступные ИНТЕРФЕЙСы REST API.
Microsoft.VisualStudio.Services.MemberEntitlementManagement.WebApi.dll
Microsoft.VisualStudio.Services.ServiceEndpoints.WebApi
Предоставляет доступ к конечным точкам службы через общедоступные ИНТЕРФЕЙСы REST API.
Microsoft.VisualStudio.Services.ServiceEndpoints.WebApi.dll
Microsoft.VisualStudio.Services.Search.Client
Предоставляет доступ к службе поиска через общедоступные ИНТЕРФЕЙСЫ REST API.
Microsoft.VisualStudio.Services.Search.Shared.WebApi.dll, Microsoft.VisualStudio.Services.Search.WebApi.dll
Microsoft.TeamFoundation.PublishTestResults
Эту задачу можно использовать для публикации результатов теста и отправки вложения тестов в Azure DevOps. В этом пакете поддерживаются следующие форматы результатов: 1. JUnit — публикация тестов из проектов Junit, 2. NUnit— публикация тестов из проектов Nunit, 3. VSTest— публикация тестов из проектов Visual Studio, 4. Xunit— публикация тестов из проектов Xunit
Microsoft.TeamFoundation.TestClient.PublishTestResults.dll
Microsoft.VisualStudio.Services.Audit.WebApi
Предоставляет доступ к службе аудита через общедоступные ИНТЕРФЕЙСы REST API.
Microsoft.VisualStudio.Services.Audit.WebApi.dll
Microsoft.Azure.Pipelines.Policy.Client
Предоставляет доступ к утверждениям конвейера, проверка и авторизации через общедоступные ИНТЕРФЕЙСы REST API.
Microsoft.Azure.Pipelines.Policy.Client.dll

Совет

Если у вас есть существующее приложение или служба Windows, использующее клиентская объектная модель TFS, используйте Microsoft.TeamFoundationServer.ExtendedClient.

Пакет soap

Пакет и описание Двоичные файлы
Microsoft.TeamFoundationServer.ExtendedClient
Работа с управлением версиями, рабочими элементами и сборкой и другими ресурсами из клиентского приложения. Этот пакет не поддерживает OM клиента Net Standard. Этот пакет используется только в том случае, если интерфейсы REST API не предлагают необходимые функции (например, создание рабочих областей в TFVC)
Microsoft.TeamFoundation.Build.Client.dll, Microsoft.TeamFoundation.DeleteTeamProject.dll, , Microsoft.TeamFoundation.Git.Client.dllMicrosoft.TeamFoundation.Diff.dllMicrosoft.TeamFoundation.SharePointReporting.Integration.dllи т. д.

Установка

Установите из командной строки диспетчера пакетов NuGet:

PM> Install-Package Microsoft.TeamFoundationServer.ExtendedClient

Связь

Чтобы создать прошедшее проверку подлинности подключение к Azure DevOps, получите httpClient для службы, с которой вы хотите работать, а затем вызовите методы для этой службы.

См. следующие примеры.

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

Пути проверки подлинности, создающие интерактивное диалоговое окно, недоступны в версии .NET Standard клиентских библиотек .NET. При использовании версии .NET Standard укажите учетные данные более явно для проверки подлинности, как показано в следующем примере.

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

Дополнительные примеры проверки подлинности см. в примерах .NET.

Справочные материалы

Дополнительные сведения и актуальную справочную документацию см. в браузере API .NET.

Примеры

Ознакомьтесь с примерами на странице примеров .NET или непосредственно в репозитории GitHub .NET.

Дополнительные сведения о пакетах NuGet см. в статье Microsoft.VisualStudio.Services.Client.

Известные проблемы

Диалоговое окно интерактивной проверки подлинности не отображается при использовании azure DevOps OM в одной потоковой квартире (STA)

Диалоговое окно интерактивной проверки подлинности не отображается в случаях, когда код выполняется из однопоточной квартиры (STA). Эта проблема часто возникает из приложений WPF . Чтобы обойти эту проблему, можно изменить метод инициализации на асинхронную и запрашивать проверку подлинности, как показано в следующем примере.

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

    ...

}

Использование NetStandard 2.0 версий OM Azure DevOps

Для версии 16.143.1 пакетов NuGet мы поддерживаем NetStandard 2.0. Эти пакеты коррелируются с Azure DevOps Server 2019 RTW и полностью совместимы с Azure DevOps.

Пакет Microsoft.TeamFoundationServer.ExtendedClient не поддерживает NetStandard

Microsoft.TeamFoundationServer.ExtendedClient не поддерживает совместимую версию NetStandard.

Внимание

Этот пакет включает в себя старую объектную модель SOAP, которую мы заменили новой объектной моделью REST. Мы больше не инвестируем в старую объектную модель SOAP и не планируем создать ее версию NetStandard.