パブリック フィードでアップストリーム ソースを使用する
Azure DevOps Services
Azure Artifacts を使用すると、開発者は 1 つのフィードから依存関係を管理できます。 アップストリーム ソースを使用すると、フィードや NuGet.org、npmjs.com などのパブリック レジストリからパッケージを使用できます。 この記事では、次の方法について学習します。
- パブリック フィードを作成する
- アップストリーム ソースを有効にする
- 新しいアップストリーム ソースを追加する
前提条件
Azure DevOps 組織。 まだ組織を作成していない場合は、組織を作成します。
Azure DevOps プロジェクト。 まだプロジェクトがない場合は 新しいプロジェクトを作成します。
プロジェクトの可視性を public に設定します。
パブリック フィードを作成する
パブリック フィードは、パブリック プロジェクトのプロジェクト スコープ のフィードです。 パブリック フィードは、ホスティング プロジェクトの可視性設定を継承します。
Azure DevOps 組織にサインインし、パブリック プロジェクトを選択します。
[ Artifacts]\(成果物\) を選択し、フィードを作成します。
フィードに Name を指定し、スコープとして Project: PublicProject (Recommended) を選択します。
終わったら [作成] を選択します。
重要
パブリック フィードでは、プライベート成果物フィードへのアップストリームはサポートされていません。 パブリック Azure Artifacts フィードを使用している場合は、パブリック レジストリ (NuGet.org、npmjs) またはその他の Public Azure Artifacts フィードにのみアップストリームできます。
アップストリーム ソースを追加する
Azure DevOps 組織にサインインし、パブリック プロジェクトを選択します。
Artifactsを選択し、パブリック フィードを選択します。
歯車アイコン を選択して、 Feed 設定にアクセスします。
[ アップストリーム ソース] を選択し、[ アップストリームの追加] を選択します。
アップストリーム ソース Type を選択します。 この例では、アップストリーム ソースとして NuGet.org を追加します。
ソースを構成し、完了したら Add を選択します。
Save を選択して、新しいアップストリーム ソースを保存します。
重要
NuGet パッケージと Dotnet パッケージをアップストリーム ソースからパブリック フィードに保存するには パッケージ ロック ファイルが必要です。
パッケージの復元
プロジェクト ディレクトリで次のコマンドを実行して、パッケージを復元します。
Note
アップストリームから新しいパッケージ バージョンをインストールするには、 Feed および Upstream Reader (コラボレーター) 以上である必要があります。 匿名ユーザーは、フィードに存在するパッケージのみをインストールできます。
Q&A
Q: パッケージを復元しようとしていますが、401 の未承認エラーが発生し続けますか?
フィードの内容は、フィードに対する適切なアクセス許可を持つ認証済みおよび承認された ID によってのみ変更できます。 これには、アップストリーム ソースからのフィードへのパッケージの保存が含まれます。 認証されていない (匿名) ユーザーは、既に保存されているパッケージをフィードにダウンロードできますが、アップストリームからフィードに新しいパッケージを保存することはできません。
プロジェクトの保守担当者は、必要なすべてのバージョンのパッケージをパブリック フィードに保存する必要があります。 これを行うには、プロンプトが表示されたときにフィードに資格情報を提供と使用する ID にパブリック フィードに対するFeed および Upstream Reader (コラボレーター) 以上のアクセス許可があることを確認する ID を使用してプロジェクトを復元します。
プロジェクトのパッケージを復元している匿名ユーザーが資格情報の要求 (401 応答) によって繰り返しブロックされている場合、次の方法で問題が軽減または解消されます。
プロジェクト構成でパッケージのバージョン範囲を使用しないでください。 明示的なパッケージ バージョンにより、パッケージ 化クライアントは必要な正確なバージョンのみを要求できます。
サポートされている場合は、パッケージ 化エコシステムのロック ファイルを利用して、パッケージ 化クライアントが復元/インストール操作中にプロジェクトに必要な特定のバージョンのみを要求するようにします。
Q: Visual Studio を使用してパッケージを復元しようとしていますが、別のソースからパッケージがプルされていることに気付きましたか?
A: Visual Studio で、ローカルの NuGet パッケージ マネージャーではなく、 nuget.config ファイルで参照されているソースが使用されていることを確認します。 詳細については、「 Package ソース を参照してください。
NuGet CLI を使用して、次のコマンドを実行して、構成ファイル内のソースを強制的に NuGet で使用することもできます。
nuget restore -config <PATH_TO_NUGET_CONFIG_FILE>