.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 の関係を示しています。

機能

  • NuGet.org からダウンロードでき、Visual Studio プロジェクトに簡単にインポートできます
  • ライブラリは、アプリとサービスでの再配布のライセンスが付与されます (ライセンスを表示する)
  • 従来のクライアント オブジェクト モデル API と REST API の両方に アクセスする

Note

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.dllMicrosoft.VisualStudio.Services.Common.dllMicrosoft.TeamFoundation.Common.dll
Microsoft.TeamFoundationServer.Client
パブリック 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.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 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 サンプルを参照してください

リファレンス

詳細および最新のリファレンス ドキュメントについては、.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 準拠バージョンをサポートしていません。

重要

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