Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Сервисы Azure DevOps | 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.
- Лицензированные для распространения: библиотеки лицензированы для распространения в ваших приложениях и сервисах. Вы можете просмотреть лицензию для получения дополнительной информации.
- Access to 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.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 |
|
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 |
Подсказка
Устаревшие SOAP API. Если у вас есть существующее приложение Windows, использующее клиентную объектную модель TFS, для SOAP-ориентированных API используйте Microsoft.TeamFoundationServer.ExtendedClient. Стоит использовать этот пакет только в том случае, если 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 стандартной версии клиентских библиотек .NET. При использовании .NET стандартной версии предоставьте учетные данные более явно для проверки подлинности, как показано в следующем примере.
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 ID: В предыдущих примерах для проверки подлинности используются токены Microsoft Entra ID. Дополнительные сведения см. в разделе Аутентификация в Azure DevOps с использованием Microsoft Entra.
Дополнительные примеры проверки подлинности см. в разделе .NET Примеры.
Ссылка
Для получения дополнительной информации и актуальной справочной документации см. в браузере API .NET API.
Образцы
Ознакомьтесь с примерами на странице примеров .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 версий Azure DevOps OM
Для версии 16.143.1 пакетов NuGet мы поддерживаем NetStandard 2.0. Эти пакеты коррелируют с Azure DevOps Server и полностью совместимы с Azure DevOps.
Пакет Microsoft.TeamFoundationServer.ExtendedClient не поддерживает NetStandard
Microsoft.TeamFoundationServer.ExtendedClient не поддерживает версию с поддержкой NetStandard.
Это важно
Этот пакет включает в себя старую объектную модель SOAP, которую мы заменили новой объектной моделью REST. Мы больше не инвестируем в старую объектную модель SOAP и не планируем создать ее версию NetStandard.
Связанный контент
- примеры клиентской библиотеки .NET
- Руководство по проверке подлинности
- Руководство по миграции с WIT Client OM
- Примеры REST API