次の方法で共有


.NET クライアント ライブラリ

Azure DevOps Services |Azure DevOps Server 2022 および Azure DevOps Server 2019

クライアント ライブラリは、Azure DevOps と統合される Windows アプリとサービスを構築する .NET 開発者が利用できます。 クライアント ライブラリは、作業項目の追跡、バージョン管理、ビルド、およびその他のサービスと統合されます。 これらのパッケージを使用すると、アプリまたはサービスに必要なライブラリを簡単に取得して再配布できます。

ヒント

.NET クライアント ライブラリ サンプルと Azure DevOps API リファレンスを使用して、対応する .NET クライアント クラスと API メソッドを検索します。

依存関係図

依存関係図は、Services.Client、Services.InteractiveClient、TeamFoundationServer.Client の関係を示しています。

.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.クライアント
組織、プロファイル、ID、セキュリティなど、パブリック REST API を介して共有プラットフォーム サービスへのアクセスを提供します。
Microsoft.VisualStudio.Services.WebApi.dllMicrosoft.VisualStudio.Services.Common.dllMicrosoft.TeamFoundation.Common.dll
Microsoft.TeamFoundationServer.クライアント
パブリック REST API を使用して、バージョン管理、作業項目の追跡、ビルドなどのアクセスを提供します。
Microsoft.TeamFoundation.Build2.WebApi.dllMicrosoft.TeamFoundation.Core.WebApi.dllMicrosoft.TeamFoundation.WorkItemTracking.Process.WebApi.dllMicrosoft.TeamFoundation.SourceControl.WebApi.dllMicrosoft.TeamFoundation.TestManagement.WebApi.dllなど。
Microsoft.VisualStudio.Services.InteractiveClient (英語)
ユーザーによる対話型サインインを必要とするアプリケーションをサポートします。
Microsoft.VisualStudio.Services.Client.Interactive.dll
Microsoft.VisualStudio.Services.Release.クライアント
パブリック 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.クライアント
パブリック REST API を使用して Search Service へのアクセスを提供します。
Microsoft.VisualStudio.Services.Search.Shared.WebApi.dllMicrosoft.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.クライアント
パブリック REST API を使用して、パイプラインの承認、チェック、承認へのアクセスを提供します。
Microsoft.Azure.Pipelines.Policy.Client.dll

ヒント

TFS クライアント オブジェクト モデルを使用する既存の Windows アプリケーションまたはサービスがある場合は、 Microsoft.TeamFoundationServer.ExtendedClientを使用します。 このパッケージは、古い SOAP ベースの API へのアクセスを提供します。これは、新しい REST API では使用できない特定の機能に必要です。 ただし、このパッケージは .NET Standard をサポートしていないため、REST API が必要な機能を提供していない場合にのみ使用することを目的としています。

石鹸パッケージ

次の表に、SOAP API を介してさまざまなサービスにアクセスするために使用できる .NET クライアント ライブラリを示します。 これらのパッケージは、NuGet.org からダウンロードして、Azure DevOps と統合するために必要なバイナリを提供できます。 これらのパッケージは、TFVC でワークスペースを作成するなど、REST API で必要な機能が提供されていない場合にのみ使用します。

パッケージと説明 バイナリ
Microsoft.TeamFoundationServer.ExtendedClient
クライアント アプリケーションからバージョン管理、作業項目、ビルド、その他のリソースを操作および管理します。 このパッケージは Net Standard Client OM をサポートしていません。 このパッケージは、REST API で必要な機能が提供されていない場合にのみ使用します (TFVC でのワークスペースの作成など)。
Microsoft.TeamFoundation.Build.Client.dllMicrosoft.TeamFoundation.DeleteTeamProject.dllMicrosoft.TeamFoundation.Diff.dllMicrosoft.TeamFoundation.Git.Client.dllMicrosoft.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 リファレンス ドキュメントについては、 .NET API ブラウザーを参照してください。

サンプル

.NET サンプル ページでサンプルを確認してください。

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 準拠バージョンをサポートしていません。

重要

このパッケージには、以前の SOAP オブジェクト モデルが含まれています。これは、新しい REST オブジェクト モデルに置き換えられました。 古い SOAP オブジェクト モデルに投資することはなくなり、NetStandard バージョンを作成する予定はありません。