.NET 클라이언트 라이브러리

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

클라이언트 라이브러리는 Azure DevOps와 통합되는 Windows 앱 및 서비스를 빌드하는 .NET 개발자에게 제공됩니다. 클라이언트 라이브러리는 작업 항목 추적, 버전 제어, 빌드 및 기타 서비스와 통합됩니다. 이러한 패키지는 기존 TFS 클라이언트 OM 설치 관리자를 대체하고 앱 또는 서비스에 필요한 라이브러리를 쉽게 획득하고 재배포할 수 있도록 합니다.

.NET 클라이언트 라이브러리 샘플 및 Azure DevOps API 참조를 사용하여 해당 .NET 클라이언트 클래스 및 API 메서드를 찾습니다.

‘종속성 다이어그램’

종속성 다이어그램은 Services.Client, Services.InteractiveClient 및 TeamFoundationServer.Client 간의 관계를 보여 줍니다.

기능

참고 항목

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
조직, 프로필, ID, 보안 등과 같은 공용 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.WorkItemTracking.Process.WebApi.dllMicrosoft.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.

Soap 패키지

패키지 및 설명 바이너리
Microsoft.TeamFoundationServer.ExtendedClient
클라이언트 애플리케이션에서 버전 제어, 작업 항목 및 빌드 및 기타 리소스를 사용하고 관리합니다. 이 패키지는 Net Standard 클라이언트 OM을 지원하지 않습니다. REST API가 필요한 기능을 제공하지 않는 경우에만 이 패키지를 사용합니다(예: TFVC에서 작업 영역 만들기).
Microsoft.TeamFoundation.Build.Client.dll, Microsoft.TeamFoundation.DeleteTeamProject.dll, Microsoft.TeamFoundation.Diff.dllMicrosoft.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 표준 버전의 .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 샘플을 참조 하세요.

참조

자세한 내용 및 최신 참조 설명서는 .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);
    await vssConnection.ConnectAsync();

    ...

}

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 규격 버전을 지원하지 않습니다.

Important

이 패키지에는 최신 REST 개체 모델로 대체된 이전 SOAP 개체 모델이 포함되어 있습니다. 더 이상 이전 SOAP 개체 모델에 투자하지 않으며 NetStandard 버전을 만들 계획이 없습니다.