コマンド ライン (dotnet) から NuGet パッケージを復元する

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

このガイドでは、dotnet コマンド ライン インターフェイスを使用してプロジェクトを構成し、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」を参照してください。

フィードに接続する

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

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

  3. [フィードに接続する] を選択してから、左側の [NuGet] セクションから [dotnet] を選択します。

  4. nuget.config ファイルを csproj または sln ファイルと同じフォルダーに作成します。 次の XML スニペットをコピーし、プレースホルダーを関連情報に置き換えて、新しいファイルに貼り付けます。

  • 組織スコープのフィード:

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <packageSources>
        <clear />
        <add key="<FEED_NAME>" value="https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" />
      </packageSources>
    </configuration>
    
  • プロジェクト範囲に特化したフィード

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

  2. [Artifacts] を選択し、その後フィードを選択します。

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

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

    Azure DevOps Server 2020 および 2022 で dotnet を使用してフィードに接続する方法を示すスクリーンショット。

パッケージを復元する

次のコマンドを実行して、パッケージを復元します。 --interactive フラグは、ユーザーに資格情報の入力を求めるために使用されます。

dotnet restore --interactive