NuGet ギャラリーからパッケージを使用する

Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022

Azure Artifacts アップストリーム ソースを使用すると、開発者は nuget.org や npmjs.com などのパブリック レジストリからパッケージを簡単にプル できます。 この記事では、プロジェクトを設定し、コマンド ラインを使用して NuGet ギャラリーから NuGet パッケージを使用する方法について説明します。

前提条件

製品 必要条件
Azure DevOps - Azure DevOps 組織
- Azure DevOps プロジェクト
- Azure Artifacts フィード
- .NET SDK バージョン 9.0.200 以降をダウンロードしてインストールします。

Azure Artifacts資格情報プロバイダーを設定する

フィードで認証するには、まずAzure Artifacts資格情報プロバイダーをインストールする必要があります。 dotnet に含まれているツール インストーラーを使用して、次のコマンドを使用して CLI から資格情報プロバイダーをインストールできます。

dotnet tool install --global Microsoft.Artifacts.CredentialProvider.NuGet.Tool

リポジトリ レベルの nuget.config がAzure Artifactsソースのみを使用するように構成されている場合は、そのディレクトリの外部から install コマンドを実行するか、nuget.org をソースとして明示的に設定します。

dotnet tool install --global Microsoft.Artifacts.CredentialProvider.NuGet.Tool --source https://api.nuget.org/v3/index.json

必要に応じて、ツールをメジャー バージョンにピン留めします (再現性が重要なコンテナー イメージなど)。

dotnet tool install --global Microsoft.Artifacts.CredentialProvider.NuGet.Tool --version 2.* --source https://api.nuget.org/v3/index.json

最初の使用

認証を必要とする操作を初めて実行するときは、次のいずれかの方法を使用します。

  1. --interactive を使用してコマンドを実行すると、dotnet がサインインを求めるプロンプトを表示できるようになります。 これは、ほとんどのローカル開発シナリオに推奨されるアプローチです。

対話型コマンドを実行する前に、プロジェクトが設定され、フィードが nuget.configに追加されていることを確認します。セットアップの詳細については、 プロジェクトのセットアップに関するページを参照してください。

プロジェクトが設定され、フィードに接続されたら、プロジェクト ディレクトリに移動して次のコマンドを実行します。

dotnet restore --interactive

このコマンドはユーザーをサインインさせ、セッション トークンを取得します。 サインインが成功した後は、キャッシュされたセッション トークンが有効なまま、 --interactive なしで認証済みコマンドを実行できます。 詳細については、「Session トークンキャッシュの場所を参照してください。

  1. Docker コンテナーやカスタムオートメーションなどの非対話型シナリオでは、environment 変数を使用して資格情報を指定します。

Azure Pipelinesの場合は、NuGetAuthenticate@1 タスクを使用して、dotnet restoredotnet nuget push などのコマンドを実行する前に、フィードに対して認証を行います。 詳細については、「Restore NuGet packages with Azure Pipelines」を参照してください。

フィードを作成し、アップストリーム ソースを有効にする

フィードをまだ作成していない場合は、次の手順に従って新しいフィードを作成し、アップストリーム ソースを有効にします。 既にフィードがある場合は、 次の手順に進み NuGet ギャラリーをアップストリーム ソースとして追加します。

  1. Azure DevOps 組織にサインインし、プロジェクトに移動します。

  2. Artifacts を選択し、Create Feed を選択します。

  3. フィードの 名前 を指定し、[ 表示] オプションを選択してパッケージを表示できるユーザーを定義し、スコープを選択 します。 Azure Artifacts では、組織全体ではなくプロジェクトにフィードのスコープを設定することをお勧めします。

  4. nuget.org、npmjs.comなどのパブリック レジストリのパッケージを使用するには、これが必要になるので、[一般的なパブリック ソースからのパッケージを含める] オプションを必ずオンにします。

  5. 終わったら [作成] を選択します。

    新しいフィードを作成し、Azure Artifacts でアップストリーム ソースを有効にする方法を示すスクリーンショット。

(前のセクションで示したように) フィードの作成時に [アップストリーム ソース] チェックボックスをオンにした場合、NuGet ギャラリーはフィードのアップストリーム ソースに自動的に追加されているはずです。 別のフィードを使用している場合や、そのオプションを確認するのを忘れた場合は、次の手順に従って NuGet ギャラリーを手動で追加できます。

  1. Azure DevOps にサインインし、プロジェクトに移動します。

  2. [ 成果物] を選択し、ドロップダウン メニューからフィードを選択します。

  3. 歯車アイコン ボタン 歯車アイコン を選択して、 Feed 設定に移動します

  1. [ アップストリーム ソース] を選択し、[ アップストリームの追加] を選択します。

  2. [ パブリック ソース] を選択し、ドロップダウン メニューから [NuGet ギャラリー ] を選択し、[ 追加] を選択します。

  3. 右上隅にある [保存] を選択し、もう一度 [保存] を選択して変更を確定して適用します。

フィードに接続する

このセクションでは、Azure Artifacts フィードで認証し、NuGet ギャラリーなどのアップストリーム ソースからパッケージを保存するようにプロジェクトを設定する方法について説明します。

  1. Azure DevOps 組織にサインインしてから、プロジェクトに移動します。

  2. [ 成果物] を選択し、ドロップダウン メニューからフィードを選択します。

  3. [ フィードに接続] を選択し、[ NuGet.exe] を選択します。

  4. 前提条件がインストールされていることを確認し、.csproj または .sln ファイルと同じフォルダーに nuget.config ファイルを追加します。

  5. [Project setup]\(プロジェクトのセットアップ\) セクションで指定した XML スニペットをファイルに貼り付けます。 ファイルは次のようになります。

    • プロジェクトに限定されたフィード:

      <?xml version="1.0" encoding="utf-8"?>
      <configuration>
        <packageSources>
          <clear />
          <add key="<SOURCE_NAME>" value="https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" />
        </packageSources>
      </configuration>
      
    • 組織スコープのフィード:

      <?xml version="1.0" encoding="utf-8"?>
      <configuration>
        <packageSources>
          <clear />
          <add key="<SOURCE_NAME>" value="https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" />
        </packageSources>
      </configuration>
      
  1. Azure DevOps コレクションにサインインし、プロジェクトに移動します。

  2. [ 成果物] を選択し、ドロップダウン メニューからフィードを選択します。

  3. フィードに接続を選択し、左側のナビゲーション ウィンドウからNuGet.exeを選択します。

  4. Project のセットアップセクションの手順に従ってフィードに接続します。

アップストリーム ソースからパッケージを保存するには、 フィードリーダーおよびアップストリーム リーダー (コラボレーター) 以上である必要があります。 詳細については、 権限の管理 を参照してください。

プロジェクトが Azure Artifacts フィードで認証されるように構成されたので、NuGet ギャラリーのアップストリームからパッケージのインストールに進むことができます。 この例では、MCP クライアントとサーバーと対話するために、.NET アプリケーション用のモデル コンテキスト プロトコル用の MCP C# SDK をインストールします。

  1. https://www.nuget.org/の NuGet ギャラリーに移動します。

  2. ModelContextProtocol を検索し、それを選択して詳細ページを開きます。

  3. .NET CLI タブを選択し、コマンドをコピーします。 この例では、コマンドは次のとおりです。

    dotnet add package ModelContextProtocol --version 0.3.0-preview.4
    
  4. コマンド プロンプト ウィンドウを開き、プロジェクト ディレクトリに移動し、コマンドを貼り付けて Enter キーを押してパッケージをインストールします。

インストールされると、パッケージのコピーがフィードに自動的に保存され、NuGet ギャラリーがダウンしている場合は可用性が確保され、パブリック レジストリから他の破損したパッケージや悪意のあるパッケージからワークフローが保護されます。

アップストリームからパッケージを保存するには、 Feed およびアップストリーム 閲覧者 (コラボレーター) ロール以上が必要です。 詳細については、 フィードのロールとアクセス許可 に関するページを参照してください。

保存されたパッケージを表示する

  1. Azure DevOps にサインインし、プロジェクトに移動します。

  2. [ 成果物] を選択し、ドロップダウン メニューからフィードを選択します。

  3. ドロップダウン メニューから NuGet Gallery ソースを選択して、このアップストリームのパッケージをフィルター処理します。

  4. 前の手順でインストールした ModelContextProtocol パッケージがフィードで使用できるようになりました。 Azure Artifacts は、フィードにコピーを自動的に保存しました。

    フィードに保存された MCP パッケージを示すスクリーンショット。