Azure Artifacts を使用すると、開発者は 1 つのフィードからすべての依存関係を効率的に管理できます。 Azure Artifacts のフィードは、チーム内、組織全体、またはインターネット上でパブリックにパッケージを格納、管理、共有するための組織リポジトリとして機能します。 Azure Artifacts では、NuGet、npm、Python、Maven、Cargo、ユニバーサル パッケージなど、さまざまな種類のパッケージがサポートされています。
この記事では、最初の NuGet パッケージを Azure Artifacts フィードに発行する手順について説明します。 必要に応じて、指示に従って GitHub Copilot を使用してプロジェクトを設定し、発行用のパッケージを準備できます。
前提条件
| 製品 | 必要条件 |
|---|---|
| Azure DevOps | - Azure DevOps 組織。 - Azure DevOps プロジェクト。 - .NET SDK バージョン 9.0.200 以降をダウンロードしてインストールします。 |
| GitHub Copilot (省略可能) | - GitHub Copilot と Visual Studio Code を設定します。 まだサインアップしていない場合は、30 日間の GitHub Copilot 無料試用版を利用できます。 |
フィードの作成
既にフィードがある場合は、このセクションをスキップできます。 それ以外の場合は、次の手順に従って Azure Artifacts に新しいフィードを作成します。
Azure DevOps 組織にサインインしてから、プロジェクトに移動します。
Artifacts を選択し、次に Create Feed を選択します。
フィードのわかりやすい 名前 を指定し、フィードでパッケージを表示できるユーザーを定義するように 可視性 を設定します。 フィードの スコープ を定義し、パブリック ソースのパッケージを含める場合は、[ アップストリーム ソース ] チェックボックスをオンにします。
終わったら [作成] を選択します。
Azure DevOps コレクションにサインインし、プロジェクトに移動します。
Artifacts を選択し、次に Create Feed を選択します。
フィードのわかりやすい 名前 を指定し、フィードでパッケージを表示できるユーザーを定義するように 可視性 を設定します。 フィードの スコープ を定義し、パブリック ソースのパッケージを含める場合は、[ アップストリーム ソース ] チェックボックスをオンにします。
終わったら [作成] を選択します。
パッケージを準備する
この例では、サンプルの .NET Core クラス ライブラリを使用し、パッケージ メタデータを設定してから、プロジェクトをビルドし、フィードに発行する準備ができている NuGet パッケージを作成します。 プロジェクトがまだない場合は、このガイドの手順に従って 、Visual Studio Code を使用して .NET クラス ライブラリを作成します。
Visual Studio Code でプロジェクトを開き、 csproj ファイルを選択します。
<PropertyGroup>タグ内にパッケージ メタデータを追加します。 ファイルは次のようになります。<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>net8.0</TargetFramework> <RootNamespace>demo_class_library</RootNamespace> <ImplicitUsings>enable</ImplicitUsings> <Nullable>enable</Nullable> <PackageId>YOUR_PACKAGE_NAME</PackageId> <Version>YOUR_PACKAGE_VERSION</Version> <Authors>YOUR_NAME</Authors> <Company>YOUR_COMPANY</Company> </PropertyGroup> </Project>プロジェクト ディレクトリで次のコマンドを実行してプロジェクトをビルドし、 .nupkg パッケージを作成します。 パッケージは
bin\releaseフォルダーに格納されます。dotnet pack
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
最初の使用
認証を必要とする操作を初めて実行するときは、次のいずれかの方法を使用します。
-
--interactiveを使用してコマンドを実行すると、dotnetがサインインを求めるプロンプトを表示できるようになります。 これは、ほとんどのローカル開発シナリオに推奨されるアプローチです。
対話型コマンドを実行する前に、プロジェクトが設定され、フィードが nuget.configに追加されていることを確認します。セットアップの詳細については、 プロジェクトのセットアップに関するページを参照してください。
プロジェクトが設定され、フィードに接続されたら、プロジェクト ディレクトリに移動して次のコマンドを実行します。
dotnet restore --interactive
このコマンドはユーザーをサインインさせ、セッション トークンを取得します。 サインインが成功した後は、キャッシュされたセッション トークンが有効なまま、 --interactive なしで認証済みコマンドを実行できます。 詳細については、「Session トークンキャッシュの場所を参照してください。
- Docker コンテナーやカスタムオートメーションなどの非対話型シナリオでは、environment 変数を使用して資格情報を指定します。
Azure Pipelinesの場合は、NuGetAuthenticate@1 タスクを使用して、dotnet restore や dotnet nuget push などのコマンドを実行する前に、フィードに対して認証を行います。 詳細については、「Restore NuGet packages with Azure Pipelines」を参照してください。
フィードに接続する
プロジェクトを設定し、Azure Artifacts フィードに接続するには、次の手順に従います。 前提条件で説明されているように、Azure Artifacts 資格情報プロバイダーと最新バージョンの NuGet がインストールされていることを確認します。
Azure DevOps 組織にサインインしてから、プロジェクトに移動します。
Artifactsを選択し、ドロップダウン メニューからフィードを選択します。
Connect to feed を選択し、次に NuGet セクションから dotnet を選択します。
Project のセットアップの指示に従って、nuget.config ファイルを設定します。 ファイルの構造は、次のいずれかのようになります。
プロジェクト単位のフィード:
<?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>組織レベルのフィード:
<?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>
Azure DevOps コレクションにサインインし、プロジェクトに移動します。
[ 成果物] を選択し、ドロップダウン メニューからフィードを選択します。
フィードに接続を選択し、左側のナビゲーション ウィンドウから dotnet を選択します。
[プロジェクトのセットアップ] セクションの手順に従って、nuget.config ファイルを設定します。
パッケージを発行する
プロジェクト ディレクトリから次のコマンドを実行して、パッケージを Azure Artifacts フィードに発行します。
--api-key パラメーターは必須ですが、Azure Artifacts に発行するときに任意の文字列値を使用できます。
dotnet nuget push --source <FEED_NAME> --api-key <ANY_STRING> <PACKAGE_PATH>