Azure Pipelines で NuGet パッケージを復元する
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
NuGet パッケージの復元を使用すると、ご利用のすべてのプロジェクトの依存関係を、ソース管理で保存しなくてもインストールできます。 これにより、開発環境をよりクリーンにし、リポジトリのサイズを縮小することができます。 NuGet パッケージは、NuGet の復元タスク、NuGet CLI、または .NET Core CLI を使用して復元できます。 この記事では、クラシックおよび YAML の両方のパイプラインを使用して NuGet パッケージを復元する方法について説明します。
前提条件
- Azure DevOps 組織。 まだ組織を作成していない場合は、組織を作成します。
- Azure DevOps プロジェクト。 まだお持ちでない場合は、新しいプロジェクトを作成できます。
- Azure Artifacts フィード。 まだお持ちでない場合は、新しいフィードを作成できます。
- 次の Azure Artifacts フィードに接続する: NuGet.exe、dotnet。
- パイプラインのアクセス許可を設定します。
フィードから NuGet パッケージを復元する
クラシック パイプライン定義に移動して、[編集] を選択します。
+ を選択して、新しいタスクを追加します。 [NuGet] を検索してから、[追加] を選択してタスクをパイプラインに追加します。
タスクに名前を付け、[コマンド] から [復元] を選択します。
[ここで選択したフィード] を選択し、ドロップダウン メニューからフィードを選択します。 独自の構成ファイルを使用する場合は、[自分の NuGet.config 内のフィード] を選択し、その NuGet.config ファイルへのパスを入力します。組織外のフィードで認証する場合はサービス接続を入力します。
NuGet.org のパッケージを含める場合は、[NuGet.org からのパッケージを使用する] チェックボックスを選択します。
完了したら、[保存してキューに登録] を選択します。
注意
クラシック NuGet の復元では、NuGetCommand@2 タスクを使用します。 このバージョンでは、既定で NuGet 4.1.0 が使用されます。 別の NuGet バージョンを使用する場合は、NuGet ツール インストーラー タスクを使用します。
NuGet パッケージをローカルに復元する
.csproj
または .sln
ファイルが格納されているのと同じフォルダーに nuget.config
を配置します。 構成ファイルは次の例のようになります。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<!-- remove inherited connection strings -->
<clear />
<!-- add an Azure Artifacts feed -->
<add key="FabrikamFiber" value="https://pkgs.dev.azure.com/microsoftLearnModule/_packaging/FabrikamFiber/nuget/v3/index.json" />
<!-- Get packages from NuGet.org -->
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
</packageSources>
</configuration>
NuGet パッケージを復元するには、プロジェクト ディレクトリ内で次のコマンドを実行します。
nuget.exe restore
別の組織内のフィードから NuGet パッケージを復元する
別の Azure DevOps 組織内のフィードから NuGet パッケージを復元するには、個人用アクセス トークンを使用して認証する必要があります。
個人用アクセス トークンを作成する
Azure DevOps 組織に移動して、[ユーザー設定]>[個人用アクセス トークン] の順に選択します。
[パッケージ (読み取り)] スコープで個人用アクセス トークンを作成し、PAT をクリップボードにコピーします。
NuGet パッケージの復元
パイプライン定義に移動し、[NuGet の復元] タスクを選択します。 使用しているタスクがバージョン 2 であることを確認してください。
[フィードと認証] を選択して、[自分の NuGet.config 内のフィード] を選択します。
NuGet.config ファイルのパスを選択します。
[新規] を選択して、[この組織/コレクション外のフィードの資格情報] を追加します。
[外部の Azure DevOps Server] を選択してから、フィード URL (NuGet.config の内容と一致していることを確認してください)、サービス接続名、前に作成した個人用アクセス トークンを入力します。 完了したら、 [保存] を選択します。
完了したら、[保存してキューに登録] を選択します。
よく寄せられる質問
Q: パイプラインが NuGet パッケージの復元に失敗しますか?
A: NuGet 復元タスクは、いくつかの理由で失敗することがあります。 最も一般的なシナリオは、パイプラインが使っている NuGet バージョンでサポートされていないターゲット フレームワークを必要とする新しいプロジェクトを追加する場合です。 一般に、ローカル開発環境でこのエラーは発生しません。なぜなら、必要に応じて Visual Studio によってソリューションが更新されるためです。 NuGet タスクを必ず最新バージョンにアップグレードしてください。