.NET 클라이언트 라이브러리
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
클라이언트 라이브러리는 Azure DevOps와 통합되는 Windows 앱 및 서비스를 빌드하는 .NET 개발자에게 제공됩니다. 클라이언트 라이브러리는 작업 항목 추적, 버전 제어, 빌드 및 기타 서비스와 통합됩니다. 이러한 패키지를 사용하면 앱 또는 서비스에 필요한 라이브러리를 쉽게 획득하고 재배포할 수 있습니다.
종속성 다이어그램
.NET 클라이언트 라이브러리의 기능
Azure DevOps용 .NET 클라이언트 라이브러리는 Windows 애플리케이션 및 서비스에서 Azure DevOps의 서비스와 쉽게 통합할 수 있는 몇 가지 주요 기능을 제공합니다.
- NuGet.org에서다운로드 가능: NuGet.org에서 라이브러리를 다운로드하여 Visual Studio 프로젝트로 쉽게 가져옵니다.
- 재배포 허가: 라이브러리는 앱 및 서비스에서 재배포에 대한 라이선스가 부여됩니다. 자세한 내용은 라이선스 볼 수 있습니다.
- 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 패키지 갤러리참조하세요.
REST 패키지
다음 표에서는 공용 REST API를 통해 다양한 서비스에 액세스하는 데 사용할 수 있는 .NET 클라이언트 라이브러리를 나열합니다. 이러한 패키지는 NuGet.org 다운로드할 수 있으며 Azure DevOps와 통합하는 데 필요한 이진 파일을 제공할 수 있습니다.
패키지 및 설명 | 바이너리 |
---|---|
Microsoft.VisualStudio.Services.Client 조직, 프로필, ID, 보안 등과 같은 공용 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 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를 통해 Notifications Service에 대한 액세스를 제공합니다. |
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를 통해 Search Service에 대한 액세스를 제공합니다. |
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 |
팁 (조언)
TFS 클라이언트 개체 모델을 사용하는 기존 Windows 애플리케이션 또는 서비스가 있는 경우 Microsoft.TeamFoundationServer.ExtendedClient
사용합니다. 이 패키지는 최신 REST API에서 사용할 수 없는 특정 기능에 필요한 이전 SOAP 기반 API에 대한 액세스를 제공합니다. 그러나 이 패키지는 .NET Standard를 지원하지 않으며 REST API가 필요한 기능을 제공하지 않는 경우에만 사용하기 위한 것입니다.
비누 포장
다음 표에서는 SOAP API를 통해 다양한 서비스에 액세스하는 데 사용할 수 있는 .NET 클라이언트 라이브러리를 나열합니다. 이러한 패키지는 NuGet.org 다운로드할 수 있으며 Azure DevOps와 통합하는 데 필요한 이진 파일을 제공할 수 있습니다. REST API가 필요한 기능을 제공하지 않는 경우에만 이러한 패키지를 사용합니다(예: TFVC에서 작업 영역 만들기).
설치하다
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 표준 버전의 .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;
}
}
}
참고 문헌
자세한 내용 및 up-to-date 참조 설명서는 .NET API 브라우저참조하세요.
샘플
.NET 샘플 페이지 또는 .NET GitHub 리포지토리직접 샘플을 확인하세요.
NuGet 패키지에 대한 자세한 내용은 Microsoft.VisualStudio.Services.Client 참조하세요.
알려진 문제
STA(단일 스레드 아파트)에서 Azure DevOps OM을 사용하는 경우 대화형 인증 대화 상자가 표시되지 않습니다.
대화형 인증 대화 상자는 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 사용
NuGet 패키지 버전 16.143.1의 경우 NetStandard 2.0을 지원합니다. 이러한 패키지는 Azure DevOps Server 2019 RTW와 상관 관계가 있으며 Azure DevOps와 완벽하게 호환됩니다.
Microsoft.TeamFoundationServer.ExtendedClient 패키지에는 NetStandard 지원이 없습니다.
Microsoft.TeamFoundationServer.ExtendedClient NetStandard 규격 버전을 지원하지 않습니다.
중요합니다
이 패키지에는 최신 REST 개체 모델로 대체된 이전 SOAP 개체 모델이 포함되어 있습니다. 더 이상 이전 SOAP 개체 모델에 투자하지 않으며 NetStandard 버전을 만들 계획이 없습니다.