Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Клиентские библиотеки доступны разработчикам .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.
- Поддержка вызовов утверждений: начиная с версии 20.259.0 клиентские библиотеки .NET теперь могут возвращать токены с вызовами утверждений, которые можно использовать для корректной обработки запросов повторной проверки подлинности после критических событий в компании (например, сброс пароля, удаление учетных записей и т. д.) в рамках нашей поддержки непрерывной оценки доступа. Поддержка Python и Go во второй половине 2025 года.
Таблица сопоставления версий пакета и Azure DevOps
В следующей таблице сопоставляется версии пакетов клиентских библиотек .NET с соответствующими версиями Azure DevOps Server. Используйте эту таблицу, чтобы определить, какая версия пакета соответствует вашей версии Azure DevOps.
| Версия пакета | Версия Azure DevOps |
|---|---|
| 16.205.х | versions >= Azure DevOps Server 2022 |
| 16.170.х | versions >= Azure DevOps Server 2020 |
Последние предварительные версии см. в коллекции пакетов NuGet.
Пакеты REST
В следующей таблице перечислены клиентские библиотеки .NET, доступные для доступа к различным службам через общедоступные ИНТЕРФЕЙСы REST API. Эти пакеты можно скачать из NuGet.org и предоставить необходимые двоичные файлы для интеграции с Azure DevOps.
| Пакеты и описание | Двоичные файлы |
|---|---|
|
Microsoft.VisualStudio.Services.Client Предоставляет доступ к службам общей платформы через общедоступные REST API, такие как организация, профиль, идентификация, безопасность и другие. |
Microsoft.VisualStudio.Services.WebApi.dll, , Microsoft.VisualStudio.Services.Common.dllMicrosoft.TeamFoundation.Common.dll |
|
Microsoft.TeamFoundationServer.Client (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 |
|
Microsoft.TeamFoundation.DistributedTask.Common.Contracts Предоставляет модели, используемые для доступа к распределенной службе задач через публичные 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 |
|
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 |
Подсказка
Устаревшие API SOAP: если у вас есть существующее приложение Windows, использующее клиентская объектная модель TFS, используйте Microsoft.TeamFoundationServer.ExtendedClient для API на основе SOAP. Стоит использовать этот пакет только в том случае, если REST API не предоставляют конкретные функциональные возможности, которые вам нужны (например, создание рабочей области TFVC). Этот пакет не поддерживает .NET Standard, и Корпорация Майкрософт больше не инвестирует в API на основе SOAP.
Упаковка мыла
В следующей таблице перечислены клиентские библиотеки .NET, доступные для доступа к различным службам через API SOAP. Эти пакеты можно скачать из NuGet.org и предоставить необходимые двоичные файлы для интеграции с Azure DevOps. Используйте только эти пакеты, если интерфейсы REST API не предлагают необходимые функциональные возможности, например создание рабочих областей в TFVC.
| Пакет и описание | Бинарные файлы |
|---|---|
| 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 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;
}
Пути проверки подлинности, создающие интерактивное диалоговое окно, недоступны в версии .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 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;
}
}
}
Подсказка
Проверка подлинности идентификатора Microsoft Entra: в предыдущих примерах используются маркеры идентификатора Microsoft Entra для проверки подлинности. Дополнительные сведения см. в статье "Аутентификация в Azure DevOps" с помощью Microsoft Entra.
Дополнительные примеры проверки подлинности см. в разделе Примеры .NET.
Ссылка
Дополнительные сведения и справочные материалы по up-to-date см. в браузере API .NET.
Образцы
Ознакомьтесь с примерами на странице примеров .NET.
Дополнительные сведения о пакетах 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 и полностью совместимы с Azure DevOps.
Пакет Microsoft.TeamFoundationServer.ExtendedClient не поддерживает NetStandard
Microsoft.TeamFoundationServer.ExtendedClient не поддерживает версию с поддержкой NetStandard.
Это важно
Этот пакет включает в себя старую объектную модель SOAP, которую мы заменили новой объектной моделью REST. Мы больше не инвестируем в старую объектную модель SOAP и не планируем создать ее версию NetStandard.