Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Клиентские библиотеки доступны разработчикам .NET, создающим приложения и службы Windows, которые интегрируются с Azure DevOps. Клиентские библиотеки интегрируются с отслеживанием рабочих элементов, управлением версиями, сборкой и другими службами. Эти пакеты упрощают получение и распространение библиотек, необходимых приложению или службе.
Подсказка
Найдите соответствующий клиентский класс и метод API .NET, используя Примеры клиентской библиотеки .NET и Справочник по API Azure DevOps.
Схема зависимостей
Функции клиентских библиотек .NET
Клиентские библиотеки .NET для Azure DevOps предлагают несколько ключевых функций, которые упрощают интеграцию со службами в Azure DevOps из приложений и служб Windows:
- Можно скачать с NuGet.org: Легко импортируйте библиотеки в проекты Visual Studio, скачивая их с NuGet.org.
- Лицензированные для распространения: библиотеки лицензированы для распространения в ваших приложениях и сервисах. Вы можете просмотреть лицензию для получения дополнительной информации.
- Доступ к API: Получите доступ к традиционным API-интерфейсам клиентской объектной модели и REST API для программного взаимодействия с Azure DevOps.
Таблица сопоставления версий пакета и Azure DevOps
В следующей таблице сопоставляется версии пакетов клиентских библиотек .NET с соответствующими версиями Azure DevOps Server. Используйте эту таблицу, чтобы определить, какая версия пакета соответствует вашей версии 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 |
Свежие предварительные версии можно найти в галерее пакетов NuGet #B0 #A1.
Пакеты REST
В следующей таблице перечислены клиентские библиотеки .NET, доступные для доступа к различным службам через общедоступные ИНТЕРФЕЙСы REST API. Эти пакеты можно скачать из NuGet.org и предоставить необходимые двоичные файлы для интеграции с Azure DevOps.
Пакеты и описание | Двоичные файлы |
---|---|
Microsoft.VisualStudio.Services.Client Предоставляет доступ к службам общей платформы через общедоступные REST API, такие как организация, профиль, идентификация, безопасность и другие. |
Microsoft.VisualStudio.Services.WebApi.dll , Microsoft.VisualStudio.Services.Common.dll , Microsoft.TeamFoundation.Common.dll |
Microsoft.TeamFoundationServer.Client Предоставляет доступ к управлению версиями, отслеживанию рабочих элементов, сборке и многому другому через общедоступные ИНТЕРФЕЙСы REST API. |
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 и так далее. |
Microsoft.VisualStudio.Services.InteractiveClient Поддерживает приложения, требующие интерактивного входа пользователем. |
Microsoft.VisualStudio.Services.Client.Interactive.dll |
Microsoft.VisualStudio.Services.Release.Client Предоставляет доступ к службе выпуска через общедоступные интерфейсы REST API. |
Microsoft.VisualStudio.Services.ReleaseManagement.WebApi.dll |
#B0 Microsoft.TeamFoundation.DistributedTask.Common.Contracts #C1 Предоставляет модели, используемые для доступа к распределенной службе задач через публичные REST-интерфейсы. |
Microsoft.TeamFoundation.DistributedTask.Common.Contracts.dll |
Microsoft.TeamFoundation.DistributedTask.WebApi Предоставляет доступ к распределенной службе задач через публичные интерфейсы REST API. |
Microsoft.TeamFoundation.DistributedTask.WebApi.dll |
Microsoft.VisualStudio.Services.ServiceHooks.WebApi Предоставляет доступ к службе WebHooks через общедоступные REST API. |
Microsoft.VisualStudio.Services.ServiceHooks.WebApi.dll |
Microsoft.VisualStudio.Services.Gallery.WebApi Предоставляет доступ к Службе галереи через общедоступные интерфейсы REST API. |
Microsoft.VisualStudio.Services.Gallery.WebApi.dll |
#B0 Microsoft.VisualStudio.Services.Notifications.WebApi #C1 Предоставляет доступ к службе уведомлений через общедоступные 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 |
#B0 Microsoft.TeamFoundation.PublishTestResults #C1 Эту задачу можно использовать для публикации результатов теста и отправки вложения тестов в Azure DevOps. В этом пакете поддерживаются следующие форматы результатов: 1. JUnit — публикация тестов из проектов JUnit, 2. NUnit — публикация тестов из проектов NUnit, 3. VSTest — публикация тестов из проектов Visual Studio, 4. Xunit — публикация тестов из проектов Xunit. |
Microsoft.TeamFoundation.TestClient.PublishTestResults.dll |
#B0 Microsoft.VisualStudio.Services.Audit.WebApi #C1 Предоставляет доступ к Службе аудита через общедоступные REST API. |
Microsoft.VisualStudio.Services.Audit.WebApi.dll |
#B0 Microsoft.Azure.Pipelines.Policy.Client #C1 Предоставляет доступ к утверждениям потока, проверкам и авторизации через общедоступные интерфейсы REST API. |
Microsoft.Azure.Pipelines.Policy.Client.dll |
Подсказка
Если у вас есть существующее приложение или служба Windows, использующее клиентскую объектную модель TFS, используйте #B0. Этот пакет предоставляет доступ к старым API на основе SOAP, которые необходимы для некоторых функций, недоступных в более новых интерфейсах REST API. Однако этот пакет не поддерживает .NET Standard и предназначен для использования только в том случае, если интерфейсы REST API не предоставляют необходимые функциональные возможности.
Упаковка мыла
В следующей таблице перечислены клиентские библиотеки .NET, доступные для доступа к различным службам через API SOAP. Эти пакеты можно скачать из NuGet.org и предоставить необходимые двоичные файлы для интеграции с Azure DevOps. Используйте только эти пакеты, если интерфейсы REST API не предлагают необходимые функциональные возможности, например создание рабочих областей в TFVC.
#B0 Пакет и описание #C1 | Бинарные файлы |
---|---|
Microsoft.TeamFoundationServer.ExtendedClient Работа с управлением версиями, рабочими элементами, сборкой и другими ресурсами из клиентского приложения. Этот пакет не поддерживает OM клиента Net Standard. Используйте этот пакет только в том случае, если интерфейсы REST API не предлагают необходимые функциональные возможности (например, создание рабочих областей в TFVC). |
Microsoft.TeamFoundation.Build.Client.dll , Microsoft.TeamFoundation.DeleteTeamProject.dll , Microsoft.TeamFoundation.Diff.dll , Microsoft.TeamFoundation.Git.Client.dll , Microsoft.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.
Ссылка
Дополнительные сведения и справочные материалы по up-to-date см. в браузере API .NET.
Образцы
Ознакомьтесь с примерами на нашей странице примеров .NET или непосредственно в нашем репозитории .NET GitHub.
Дополнительные сведения о пакетах NuGet см. в Microsoft.VisualStudio.Services.Client.
Известные проблемы
Диалоговое окно интерактивной проверки подлинности не отображается при использовании Azure DevOps OM в однопоточной модели (STA).
Диалоговое окно интерактивной аутентификации не отображается в случаях, когда ваш код выполняется в Single Threaded Apartment (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);
CancellationTokenSource source = new CancellationTokenSource();
CancellationToken token = source.Token;
await vssConnection.ConnectAsync(token);
...
}
Использование 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.